互连参数:“SLI_itemisePara_WRREC_Para”函数
要传递位序列 (0..7) 的值,可创建函数“SLI_itemisePara_WRREC_Para”。
在该函数中创建以下局部变量。
程序段 1:根据程序段 1 的示例,为所有位 (0..7) 创建互连。
互连参数:“SLI_FB_WRREC_Para”函数块
在函数块“SLI_FB_WRREC_Para”中创建以下互连。
程序段 1:互连“RDREC”指令的参数,如下所示:
该程序段第 2 部分:根据以下示例,互连变量“ClearanceDiagnosis”和“InputDelay_ProcessEvent”。
程序段 3:之后,互连 RDREC 的错误状态变量。
程序段 4:之后,互连变量结束 RDREC 的运行。
该程序段第 2 部分:
程序段 6:互连“WRREC”指令的参数,如下所示:
程序段 7:之后,互连 WRREC 的错误状态变量。
程序段 8:之后,互连变量结束 WRREC 的运行,并再次调用 RDREC。
程序段 1 的结果:
创建一个输入模块并读取该输入模块属性中的硬件 ID。并通过输入参数 ID(“id”)存储该硬件标识符。通过输入参数 INDEX(“dataRecNbr”),系统将调用该模块中编号为“3”的数据记录。该数据记录对应同名的通道。
输入参数 REQ(“startRead”)返回信号状态“TRUE”时,启动指令“RDREC”。“RDREC”指令将通过输入参数 ID(“id”),调用该输入模块。
多次调用后,“RDREC”指令将读取该数据记录,并通过参数 RECORD(“readBYTE”)进行保存。通过输出参数 LEN(“readLength”),可存储所读取数据记录的长度。根据输入参数 MLEN(“maxReadLength”)的值,待读取的数据记录信息将限制为 4 个字节。 在执行过程中,输出参数 BUSY(“readBusy”)将置位为“TRUE”;VALID(“readCheck”)将置位为“FALSE”。 执行完成时,将输出成功读取的结果,如下所示:
输出参数 VALID(“readCheck”)将置位为“TRUE”,变量“readCheckedValid”将永久性地置位为“TRUE”。 并在输出参数 STATUS(“readStatus”)处,显示该块的状态。该过程成功执行且无任何错误。
程序段 2 的结果:
通过指令 MOVE 和函数 SLI_itemisePara_WRREC_Para,结构“readBYTE”将变量值传送到同名结构“readParaRecord”的变量中。为了便于理解,可使用具体的描述性名称表示“readParaRecord”结构的变量。有关该结构的详细信息,请参见该模块的设备手册。例如,“InputDelay_ProcessEvent”表示 3.2 ms 的输入延时。对于该通道的状态(“ClearanceDiagnosis”),不会输出任何中断(位 0 到 8 为“FALSE”)。 程序段 3 的结果:
“readError”的信号状态为“TRUE”时,将变量“readStatus”的值保存在变量“reMemErrStat”中。
程序段 4 的结果:
如果指令“RDREC”已执行,则“readStatus”的值为“160070_0200”。此后,重置程序将变量“startRead”置位为“FALSE” 程序段 5 的结果:
通过指令 MOVE 和函数 SLI_itemisePara_WRREC_Para,结构“writeParaRecord”将变量值传送到同名结构“writeBYTE”的变量中。为了便于理解,可使用具体的描述性名称表示“writeParaRecord”结构的变量。 程序段 6 的结果:
输入参数 REQ(“startWrite”)返回信号状态“TRUE”时,启动指令“WRREC”。
该数据记录的新数据将存储在 RECORD(“writeBYTE”)参数中。通过多次调用,指令“WRREC”将新数据写入数据记录“3”中。根据输入参数 LEN(“maxWriteLength”)的值,待写入的数据记录信息将限制为 4 个字节。 在执行过程中,输出参数 BUSY(“writeBusy”)将置位为“TRUE”;DONE(“writeCheck”)将置位为“FALSE”。 执行完成时,将输出成功写入的结果,如下所示:
并在输出参数 STATUS(“writeStatus”)处,显示该块的状态。该过程成功执行且无任何错误。
程序段 7 的结果:
“writeError”的信号状态为“TRUE”时,将变量“writeStatus”的值保存在变量“wrMemErrStat”中。
程序段 8 的结果:
如果指令“WRREC”已执行,则“writeStatus”的值为“160070_0200”。此后,重置程序将变量“startWrite”置位为“FALSE”。并随后执行指令“RDREC”后,将变量“startRead”置位为“TRUE”。结构“readParaRecord”中,将显示该数据记录新写入的值。由于位 0中“InputDelay_ProcessEvent”的信号状态为“TRUE”,因而通道 3 当地的输入延时将为 0.1 ms。