技术论坛

 跟我一起玩200smart PLC 报警状态显示

返回主题列表
作者 主题
WWCWWC
至圣

经验值:79172
发帖数:9104
精华帖:157
楼主    2017-04-25 12:47:12
主题:跟我一起玩200smart PLC 报警状态显示 精华帖 

跟我一起玩200smart PLC

报警状态显示

   今天在“找答案”中看到有这么一则问题求助,要求将以位故障报警信息按具体触发位单独循环显示,当报警离去是不显示该位信息,具体问题链接:http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=159103&cid=1032

我考虑了一下,感觉可以用移位指令和逻辑“字与”的方法解决此问题。

编程思路:假设控制以一个字的报警信息在QW0中反应。

1)  首先新建一个子程序命名为“报警信息”,并定义相关变量及数据类型:


2)  根据编程思路编辑相应的控制程序:


子程序:

2.0)初始移位指令

2.1)将初值做循环左移1位操作

2.2)将左循环移位结果与报警状态输入做逻辑“与”运算,结果给输出

3)  在主程序中调用“报警显示”子程序,并新建“状态图表”方便监控状态:


4)  假设,报警信息VW0有报警存在,(V1.0~V1.2)3个报警被激活,启动M0.0 = 1.

当循环左移有效位与报警状态值进行“与”运算,得到Q1.0~Q1.2的输出有效状态。


当实时报警信息状态改为VW0 = 2#111时,循环左移到Q1.0~Q1.2通过“与”运算,使Q1.0~Q1.2 = 分别为1的一秒钟时间有效。

5)  改变报警状态值,VW0 = 2#1010,得到的输出结果:


    运行结果当报警状态值VW 0= 2#1010时,Q1.1 = 1;Q1.3 = 1。结果符合控制要求,当然如果还需要用其它方式显示可以通过修改逻辑指令和脉冲时间得到。

注意!西门子字寻址是按高位低字节方式排列的。


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。