西门子PLC GETIO和SETIO的编程示例

描述

GETIO 和 SETIO 的编程示例

简介

在以下示例中,将通过 GETIO 读取数字量输入模块的通道,并通过 SETIO 将新值写入数字量输出模块的通道中。之后,再通过 GETIO 和数字量输入模块读取相应变化。

要求

互连参数:“SLI_itemiseByte_gsIO”函数

要传递位序列 (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”:

编程

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分