c++ 判断硬件是否支持opengl_AB PLC | 如何判断PLC系统中的硬件设备是否在正常工作?...

2e31444c-591d-eb11-8da9-e4434bdf6706.gif 前言: PLC控制系统,主要由CPU、本机架I/O模块,分布式I/O模块,通信模块,或其他设备(如:伺服驱动器、交换机、第三方设备)等组成,如何判断这些设备是否工作正常?或是一旦出现故障,能在第一时间判断故障设备出在哪里?为排查故障节省时间,提高效率,降低停机时间,在大型项目中维护,尤其重要。本文,将分享一种如何判断AB PLC控制系统中的硬件设备是否在正常工作的方法。 使用方法

即通过编写GSV指令访问模块对象,硬件组态及编程注意事项:

1. 模块对象能提供有关模块的状态信息;

2. 模块必须出现在控制器项目管理器的“I/O 配置”(I/O Configuration) 组态中;

3. 模块必须具备一个设备名称

编程依据

通过GSV指令获取EntryStatus状态值,若为16#4000(转换为10进制等于16384),表明该模块正在运行、连接正常,且正在传输数据,详见通用指令集《1756-RM003S-ZH-P》.

5931444c-591d-eb11-8da9-e4434bdf6706.jpeg

方法步骤 1. 打开软件Studio 5000(本文版本为31.01),在项目的I/O配置中,组态硬件,依照规则,每一个模块均设置名称,比如:把1734-AENTR/B的名称设置为RIO11,其他设备模块也如此.

6931444c-591d-eb11-8da9-e4434bdf6706.jpeg

2. 硬件组态好以后,就可以针对这些模块进行编写判断是否连接正常的程序,不过编程之前先建立标签变量,如下图所示。本文举例,如何判断1个以太网通信模块,1个数字量输入模块,1个伺服驱动器是否工作正常。其中建立一个固定值标签变量StatusOkFlag,数据类型DINT,其他变量详见下图.

7431444c-591d-eb11-8da9-e4434bdf6706.jpeg

3. 变量建好以后,将变量编辑界面切换到运行监控界面,将固定值变量StatusOkFlag的值修改16384.

7d31444c-591d-eb11-8da9-e4434bdf6706.jpeg

4. 开始编写程序,这里图方便,直接在主程序里写了,使用到GSV指令,获取模块的状态信息,如果状态等于16384,则连接运行正常,否则异常,详见下图.

8731444c-591d-eb11-8da9-e4434bdf6706.jpeg

测试效果

1. 下载程序,并使CPU处于运行状态,I/O OK灯常绿,I/O配置无异常图标,在程序中可以看到所有模块的状态值均为16384,说明目前所有模块设备连接正常.

9131444c-591d-eb11-8da9-e4434bdf6706.jpeg

2. 拔掉1734-AENTR/B上的网线,这时I/O OK灯闪烁,I/O配置出现黄色感叹号图标,在程序中可以看到,以太网通信、数字量输入模块的状态值均28672,将其转换为16进制,为16#7000,根据编程依据,表明模块正在等待连接,伺服驱动器状态值为12288,,将其转换为16进制,为16#3000,表明模块在连接,模块对象正在发起与模块的连接。只要模块状态值不为16384,就可以判断其连接错误,工作异常。

9631444c-591d-eb11-8da9-e4434bdf6706.jpeg

结束语:本文提供了一种判断硬件设备是否在正常工作的方法,通过编写程序,并将这些状态信息在触摸屏或上位机界面显示,这样就可以很好的运用在项目维护中。另外,在仿真软件Studio 5000 Logix Emulate中也可以模拟这种方法,即把建立的模块删除,就能测试效果。若需要本文源代码,请发邮件至:abseme@126.com


【AB PLC工作室】

微信公众号ID:abseme

a031444c-591d-eb11-8da9-e4434bdf6706.jpeg

      坚持原创  注重实用  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值