【PROFINET通信征文】读取I/O系统devicestates指令的应用
PROFINET是开放、标准、实时的以太网通讯之一,而PROFINET I/O又将以软件组态简单、方便、快捷的特性,广泛被用户所接受和应用。在功能强大的Portal软件中,库指令中提供了适应各场景的诊断应用指令,其中,devicestates读取I/O系统的模块状态信息指令,它能够诊断主站系统、远程站模块是否丢失工作异常的通讯诊断功能。该指令适用于PROFINET I/O系统中所有I/O设备的状态信息,或Profibus DP 主站系统中所有DP从站的状态信息。
Devicestates指令应用:
测试硬件条件:
I/O站:S7-1214C DC/DC/DC V4.2 创建I/O站CPU版本必须高于V4.0
设备站:S7-1214C AC/DC/RLY V2.2
普联交换器:TP-LINK
Protal V15软件
通讯故障诊断测试:
1) 新建测试项目,新建2个PLC站点,图示1:
2) 在I/O站,添加PROFINET I/O站点信息,图示2: 
在I/O站添加了10个字节的通讯数据交换,其中I/O站方式QB100 ~ QB109到设备站IB100 ~ IB109,同时,I/O站又接受设备站QB100 ~ QB109的数据到IB100 ~ IB109,实现数据的交互。
3) 将项目分别下载到各自的PLC中,验证PROFINET I/O站点双方的通讯数据交互,图示3:

10个字节的通讯数据交互情况,图示4:

4) 在设备站OB1中编辑调用devicestates指令,图示5:指令应用看F1在线帮助内容。 
在填写STATE管脚前,创建一个数据块DB1,并创建一个[ 0 -1023 ] for bool的数组,以太网诊断可以是1024个站点,如果是DP通讯,则为128个站点,图示6:

5) 将创建项目重新下载,监控设备站DB1的数据,图示7:I/O站正常的情况。

I/O站通讯中断的情况,图示8:

I/O站点通讯正常显示TRUE,当丢站时该位显示FALSE值。
当通讯重新连接后,devicestates指令能够自动连接,并将对于的站点数据有FALSE变为TRUE值,用户只需要调用对应的状态数值,就可以判断网络所挂的站点通讯是否正常的情况。
2025年8月1日星期五整理