技术论坛

 由一条状态切换程序深入理解了PLC的扫描机制

返回主题列表
作者 主题
will666
奇侠

经验值:8840
发帖数:1997
精华帖:12
楼主    2019-06-06 23:41:44
主题:由一条状态切换程序深入理解了PLC的扫描机制 精华帖  精编帖 

在程序中要实现一个功能:长按按钮C_MTC超过5秒钟切换S_MTC的状态。本来认为是一个非常简单的逻辑,所以第一次我是这么写的,其中T_PRES是记录按钮按下时间的变量。

第一次想象很简单:按钮按下超过5秒的上升沿,如果状态是1则复位状态,是0则置位状态。结果运行发现状态置位以后就复位不掉了,因为如果是置位状态,边沿触发后先复位紧接着就被置位。

第二次改成了下面的样子,觉得用两个触发是不是就可以了呢?

结果发现其实更糟糕,变成了两个边沿触发交替使能,最后只有置位有效,同样不能复位。为了能复位只有在复位后置位指令失去执行条件才可以,那么很简单,把计时变量清零就可以了,所以我又改成了下面的样子。


运行发现还是不行,因为前面扫描条件是满足的,在同一行里虽然把计时变量清零了也无效,最后的解决方案就是分成两行来判断,像下面的样子:



学习PLC第一个要理解的就是PLC的扫描机制:从左至右,从上至下循环扫描。在同一行程序里,后面的任何动作都不会影响前面的判断结果,所以前面几次有问题的逻辑都是在用人脑子想当然做了判断,换作PLC这个死脑筋就不灵了,这也是编程过程中常犯的错误。同样的功能,如果用上程序跳转就简单多了,各位高手指点一下吧。

污水处理自控工程师,简称污师。
Zane
版主

经验值:75765
发帖数:19245
精华帖:376
1楼    2019-06-06 23:59:00
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

这个问题实际上可以归纳为,单键状态切换之单键延时满足后的状态切换

Zane 注册自动化系统工程师 Always save before download
Zaxife
至圣

经验值:12573
发帖数:2503
精华帖:31
2楼    2019-06-07 00:19:31
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制
既然要判断长按、短按两种,逻辑上就是:
1、按下按钮时开始计时;
2、松开按钮下降沿时判断按下按钮的时长;
3、时长小于规定时间、时长大于等于规定时间则执行不同的分支。
这样逻辑上就不会乱了。高级语言编程经常用到这样的逻辑。
Zane
版主

经验值:75765
发帖数:19245
精华帖:376
9楼    2019-06-08 13:37:56
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制
呵呵,这不仅是对PLC程序扫描机制的理解,更是对控制对象控制逻辑本身的一个理解,我认为大部分的问题出在后者而不是前者
Zane 注册自动化系统工程师 Always save before download
will666
奇侠

经验值:8840
发帖数:1997
精华帖:12
10楼    2019-06-09 09:36:46
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

扫描机制大家都理解,但是一旦编程时可能就忽略了,开始用自己想当然的判断来写逻辑了,最后调试有问题才发现是扫描机制不同,人脑子自动跳转了。

污水处理自控工程师,简称污师。
will666
奇侠

经验值:8840
发帖数:1997
精华帖:12
11楼    2019-06-09 23:39:30
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

PLC编程确实是需要见多识广,否则容易闭门造车封闭在自己的思路里。做了十年的水处理控制,其实没有在编程上有太大长进,因为这行对程序要求不高,也就没有动力。最近在做一个编程标准化的研究,就是同类设备使用同样的功能块开发上下位,达到不同人开发不同项目功能和风格一致的目的。开始做才发现要考虑的问题非常多,命名的规则,程序功能,移植和复制的简便性,配套上位机的复用功能等很多问题要处理。如果有正在做类似工作的人大家可以互相交流一下。

污水处理自控工程师,简称污师。
不断攀登
至圣

经验值:12543
发帖数:1843
精华帖:0
12楼    2019-06-10 08:09:23
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

理解扫描机制和顺序。

邮箱 yongquancun@126.com
yyzx
奇侠

经验值:6041
发帖数:939
精华帖:4
14楼    2019-06-10 09:59:33
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

循环扫描是重点

不患无位,患所以立
holdkcsxyz
至圣

经验值:12948
发帖数:1802
精华帖:22
15楼    2019-06-10 13:37:35
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

这是斑竹说的逻辑问题

夕阳渔歌
侠士

经验值:1653
发帖数:81
精华帖:1
16楼    2019-06-11 10:32:14
精编帖  主题:回复:由一条状态切换程序深入理解了PLC的扫描机制

明白扫描机制,应该知道第一个程序加两个中间变量就可以了,不需要弄的多复杂。


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