登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:0428 【万泉河】PLC编程:谈虎色变双线圈

点击:1710 回复:14

0428 【万泉河】PLC编程:谈虎色变双线圈
双线圈问题是PLC行业独有的问题。如果把这个名词讲给没有接触过PLC的IT程序员, 对方一定蒙逼,不知所云。
所以,可以算作是PLC工程师相比IT工程师掌握的为数不多的行业门槛。
很多人引以为傲, 而同时也有很多人提及双线圈就谈虎色变。
对程序中有可能出现双线圈忧心忡忡。
看来是入门学习PLC的时候,被某些培训老师给惊吓着了。 留下了病根。
而有一些品牌如三菱的编程软件,在编译过程中会频繁冒出双线圈警告,无疑在同行中也加深了这种忧虑。
以为是完全不可触及的禁区。
而其实,是个很简单的小问题。
双线圈问题的描述是基于梯形图语言的:即在整个PLC的程序范围内,对同一个Q点的输出线圈()指令只能有一次。 不要超过两次。 如果超过两次,就很有可能程序有BUG。 因为两次线圈()之中的某一次会无效。
线圈指令的本质是赋值。
是对某个开关量的Q点,赋值以计算后的结果1或者0。
即如果程序中有连续两次赋值:
Q:=1;
Q:=0;
则最终执行的结果是0,前面的1的赋值部分,被冲掉了。
所以, 除非你有意这样写程序,否则检查中发现这样的语句,就需要小心一点,有可能有错误。
我们这里讲线圈的本质是赋值,但反过来却未必成立。 赋值指令却未必是线圈(),因为还有(S)/(R)置位/复位指令。即,后两者并不是线圈,当说到双线圈的时候,唯一特指的就是只有()。
(S)/(R)置位/复位指令的本质是条件赋值。
所以,线圈指令的本质其实是无条件赋值。 警惕双线圈其实是要你警惕两次以上的无条件赋值。
比如
Q:=I;
这是赋值。
而如果用SR指令写,其实是IF/THEN的条件判断,以文本表达为:
IF I=TRUE THEN
Q:=TRUE;
ELSE
Q:=FALSE;
END_IF;
上述两种程序写法是完全等效的,效果完全一样。然而如果遇到两次需要写操作的场合,而且两次写操作不能合并, 只能分在两个不同的位置。前一种:
Q:=I1;

Q:=I2;
程序是有错误,而且无法解决。
而后一种,则可以各自增加上升沿下降沿的判断,最终分别实现
IF I1=TRUE  AND  I1_SAVE=FALSE THEN
Q:=TRUE;
IF I1=FALSE  AND  I1_SAVE= TRUE  THEN
Q:=FALSE;
I1_SAVE:=I1;
………….
IF I2=TRUE AND I2_SAVE=FALSE THEN
Q:=TRUE;
IF I2=FALSE  AND  I2_SAVE= TRUE  THEN
Q:=FALSE;
I2_SAVE:=I2;
这样的程序,大致实现了I1和I2分别为TRUE时,都可以点亮Q。 而不必非要把程序逻辑拼在一个段落中, 用OR语句来实现。
注意, 这里的逻辑还是只是大致实现。 是假设I1和I2的变化不会同时发生的情况下。
如果有同时发生, 而且发生时间片段有重叠,那么还需要更复杂的处理。
在我的新书《PLC标准化编程原理与方法》CH5.6.1一节中有详细介绍。
总之,对于双线圈难题的解决方案是:不要用线圈。
S/R不是线圈。
22-04-29 09:58
有些PLC编程软件你作S/R也报双线圈表情
附件 1651198133(1).jpg
附件 1651198172(1).jpg
22-04-29 10:10
有个时候使用双线圈能给编程带来极大的便利!理解双线圈原理!并非完全不可用!
22-04-29 10:49
我看过一个电镀线的程序里面很多都是双线圈的!全正正常运行。里在用到一些变址。已经用了很多年的老线 是 日本进口的 !
22-04-29 11:06

引用 dc8421 在 2022/4/29 10:10:27 发言【内容省略】

看图片是三菱的吧,可以设置的,把编译设置那设置为SET不是双线圈
22-04-29 11:31
哈哈 又在说笑话
IT行业程序员一定蒙逼,显然与那个培训老师一样,听(讲)到的只是个名词
S/R不是线圈? 新论,头次听说
赋值? 那个"线圈"不是赋值? mov,add,Max.....
产生线圈重复的因素是很多滴
何为梯形图?用一句话概括
母线开始,线圈结束,由n个接点连接的若干控制回路组成.
看起开像梯子,所以称之为梯形图.
80年末在北大培训课上使用,不用费口舌,学员就懂了.
22-04-29 11:43
解决双线圈几乎是PLC程序编写的基本功
22-04-29 21:25
线圈等同于赋值
这个结论是怎么得出来的?
是PLC厂家开发人员告诉你的吗?
22-04-30 16:21
我不是能理解!
22-04-30 18:06
因噎废食!
双线圈本质是PLC与其它单片机输出方式不同的结果,单片机是边扫描边输出,PLC是一个周期完了根据最后结果一次性输出。
22-05-01 07:34

上一页下一页

工控新闻

更多新闻资讯