作者 | 主题 |
---|---|
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的扫描机制 明白扫描机制,应该知道第一个程序加两个中间变量就可以了,不需要弄的多复杂。 |