您现在所在的是:

PLC论坛

回帖:14个,阅读:1537 [上一页] [1] [2] [下一页]
2009
万泉河.
文章数:915
年度积分:-106
历史总积分:2009
注册时间:2009/12/4
发站内信
发表于:2022/4/29 9:58:00
#0楼
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不是线圈。

PLC标准化编程
2408
dc8421
文章数:161
年度积分:50
历史总积分:2408
注册时间:2009/5/19
发站内信
发表于:2022/4/29 10:10:27
#1楼
有些PLC编程软件你作S/R也报双线圈表情
附件 1651198133(1).jpg

附件 1651198172(1).jpg
8595
377809393
文章数:270
年度积分:765
历史总积分:8595
注册时间:2010/4/10
发站内信
发表于:2022/4/29 10:49:38
#2楼
有个时候使用双线圈能给编程带来极大的便利!理解双线圈原理!并非完全不可用!
10245
twtynijj
文章数:2603
年度积分:816
历史总积分:10245
注册时间:2009/7/15
发站内信
2016国庆活动(三)
发表于:2022/4/29 11:06:49
#3楼
我看过一个电镀线的程序里面很多都是双线圈的!全正正常运行。里在用到一些变址。已经用了很多年的老线 是 日本进口的 !
8913
6926792
文章数:1110
年度积分:654
历史总积分:8913
注册时间:2012/8/13
发站内信
发表于:2022/4/29 11:31:57
#4楼
以下是引用dc84212022/4/29 10:10:27的发言:
有些PLC编程软件你作S/R也报双线圈表情
附件 1651198133(1).jpg

附件 1651198172(1).jpg
看图片是三菱的吧,可以设置的,把编译设置那设置为SET不是双线圈
此帖发自手机工控论坛
自古人生与世,需有一技之长;我辈既务斯业,须当专心用功;
38066
知道一点
文章数:22556
年度积分:2485
历史总积分:38066
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2022/4/29 11:43:18
#5楼
哈哈 又在说笑话
IT行业程序员一定蒙逼,显然与那个培训老师一样,听(讲)到的只是个名词

S/R不是线圈? 新论,头次听说
赋值? 那个"线圈"不是赋值? mov,add,Max.....
产生线圈重复的因素是很多滴

何为梯形图?用一句话概括
母线开始,线圈结束,由n个接点连接的若干控制回路组成.
看起开像梯子,所以称之为梯形图.

80年末在北大培训课上使用,不用费口舌,学员就懂了.
快乐 幸福 自由 比什么都重要
26506
goldage
文章数:15084
年度积分:2008
历史总积分:26506
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2022/4/29 21:25:17
#6楼
解决双线圈几乎是PLC程序编写的基本功
12465
蛇会大学
文章数:4619
年度积分:791
历史总积分:12465
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2022/4/30 16:21:04
#7楼
线圈等同于赋值

这个结论是怎么得出来的?

是PLC厂家开发人员告诉你的吗?
敏问找算丁亏楼累
敏问找算哭哲累嘿
敏问够算恐哈做累揍忍没催妹
比漏累伤醒更八音舍黑
我晕能以身问晕陪笨累
3849
dffeifei110
文章数:950
年度积分:148
历史总积分:3849
注册时间:2016/7/23
发站内信
发表于:2022/4/30 18:06:48
#8楼
我不是能理解!
工控大白兔,感谢各位指点!多谢!
6705
szhenlong
文章数:1347
年度积分:176
历史总积分:6705
注册时间:2014/9/28
发站内信
发表于:2022/5/1 7:34:45
#9楼
因噎废食!
双线圈本质是PLC与其它单片机输出方式不同的结果,单片机是边扫描边输出,PLC是一个周期完了根据最后结果一次性输出。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006