简介
在以下示例中,将通过 GETIO读取数字量输入模块的通道,并通过 SETIO 将新值写入数字量输出模块的通道中。之后,再通过 GETIO 和数字量输入模块读取相应变化。
要求
要传递位序列 (0..7) 的值,可创建函数“SLI_itemiseByte_gsIO”。
在该函数中创建以下局部变量。
程序段 1:根据程序段 1 的示例,为所有位 (0..7) 创建互连。
互连参数:“SLI_FB_GETIO_SETIO”函数块
在函数块“SLI_FB_GETIO_SETIO”中创建以下互连。在 IO 设备/DP 从站中,在程序循环 OB (OB1) 中调用函数块“SLI_FB_GETIO_SETIO”。
程序段 1:互连“GETIO”指令的参数,如下所示:
程序段 2:结束“GETIO”指令,如下所示:
程序段 3:根据以下示例创建互连,转换 GETIO 的通道值。此时,将互连函数“SLI_itemiseByte_gsIO”中所有的输入和输出 (0..7)。
程序段 4:根据以下示例创建互连,转换 SETIO 的通道值。此时,将互连函数“SLI_itemiseByte_gsIO”中所有的输入和输出 (0..7)。
程序段 5:互连“SETIO”指令的参数,如下所示:
程序段 6:结束“SETIO”指令,如下所示:
程序段 1 (GETIO) 的运行结果
输入参数 EN(“executeRead”)返回信号状态“TRUE”时,启动指令“GETIO”。“GETIO”指令将通过输入参数 ID(“id_Read”)调用该输入模块。并通过输入参数 INPUTS(“#readBYTE”)读取该输入模块的通道。在输出参数 LEN(“lengthRead”)中,将记录 BYTE 中读取的通道长度。“2”值引用 16 个输入通道。
并在输出参数 STATUS(“statusRead”)处,显示该块的状态。该过程成功执行且无任何错误。
程序段 2 (GETIO) 的运行结果
执行“GETIO”指令时,输出参数 ENO(“doneRead”)将返回信号状态“TRUE”。此后,重置程序将变量“executeRead”置位为“FALSE”,并结束“GETIO”的运行。
程序段 3 (GETIO) 的运行结果
通过函数 SLI_itemiseByte_gsIO,结构“#readBYTE”将变量值传送到结构“readInputs”的变量中。此时,通道 0 到 7 和 8 到 15 的值从 BYTE 转换为 ARRAY of BOOL。
为了便于理解,可使用具体的描述性名称表示“readInputs”结构的变量。
程序段 4 (SETIO) 的运行结果
通过函数 SLI_itemiseByte_gsIO,结构“writeOutputs”将变量值传送到结构“#writeBYTE”的变量中。通道 0 到 7 和 8 到 15 的值从 ARRAY of BOOL 转换为 BYTE。
为了便于理解,可使用具体的描述性名称表示“writeOutputs”结构的变量。
程序段 5 (SETIO) 的运行结果
输入参数 EN(“executeWrite”)返回信号状态“TRUE”时,启动指令“SETIO”。“SETIO”指令将通过输入参数 ID(“id_Write”)调用该输出模块。新值将通过输入参数 OUTPUTS(“#writeBYTE”)写入输出模块的通道中。
并在输出参数 STATUS(“statusWrite”)处,显示该块的状态。该过程成功执行且无任何错误。
程序段 6 (SETIO) 的运行结果
执行“SETIO”指令时,输出参数 ENO(“doneWrite”)将返回信号状态“TRUE”。此后,重置程序将变量“executeWrite”置位为“FALSE”,并结束“SETIO”的运行。
GETIO 重新运行的结果
如果变量“executeRead”复位为“TRUE”,则在执行 GETIO 后将在“readInputs”结构中显示该输入模块通道中的新值。通道 1 和 2(“Channel_0-7[1]..[2]”)将返回信号状态“TRUE”。
说明 更改通道的信号状态 如果已为通道赋值但该通道的信号状态将改变(如,通过 PLC 变量),则可通过 SETIO 将信号状态的变更转至无效。此时,请确保将发送变更的通道信号状态与其它因素无关。 |
创建带有一个数字量输入模块和一个数字量输出模块的 IO 设备/DP 从站。
说明 使用 SETIO 进行更改,并使用 GETIO 读取更改 数字量输入模块必须连接到数字量输出模块处,确保写入的值可使用 GETIO通过 SETIO 进行读取。 |
在全局数据块中,创建 9 个变量和 2 个结构“readinputs”和“writeOutputs”进行数据存储。 使用“id_Read”变量,存储数字量输入模块的硬件标识符。使用“id_Write”变量,存储数字量输出模块的硬件标识符。
说明 查找硬件标识符 使用“PLC 变量 > 系统常量”(PLC tags > System constants),查找硬件标识符。例如,数字量输入模块可使用数据类型“HW_Submodule”搜索“Local~<数字量输入模块名称>”。在相关单元格“值”(value) 中,将列出该硬件的标识符。 |
要进行数据传送,需在函数块“SLI_FB_GETIO_SETIO”中创建以下局部变量。
要更改通道状态,需在全局数据块中,将以下位(通道 1 和 2)设置为“TRUE”:
审核编辑:汤梓红
-
plc
+关注
关注
5006文章
13093浏览量
461319 -
西门子
+关注
关注
93文章
2992浏览量
115433 -
编程
+关注
关注
88文章
3558浏览量
93524 -
数字量
+关注
关注
0文章
67浏览量
11255
原文标题:西门子PLC: 读取数字量输入模块/写入数字量输出模块
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论