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”:
PCB产业升级,19年全球5G基地台PCB市场约10亿美元
谷歌面临90天最后通牒 高通也可能遭受巨额罚款
支持EDSFF的服务器与存储系统问世
一文清楚变压器该如何保养
GCAN-202的在线修改波特率功能,不知道您有没有使用过?
西门子PLC GETIO和SETIO的编程示例
CPU的主频是什么?
中科驭数推出FPGA形态一系列加速卡产品
探讨大数据时代的思维、商业和管理变革
三星Galaxy A10s曝光采用了八核处理器内置4000mAh大电池
感应同步器的运用
40G/100G相干光通信原理与关键技术
单片机是怎么工作的?
Linux系统iptables和firewall防火墙的配置方法
KKR收购雷士中国多数股权完成交割
小米两大新品耳机抢先看
TH2683A绝缘电阻测试仪的性能特点及应用范围
补贴退坡的到来,各大新能源汽车企业该怎么应对?
中国移动与中国联通高层互换
高亮度LED固态照明光源与传统光源的光效对比具有哪些优势