推荐丨进行逻辑控制顺序控制的编程方法
不管什么品牌的PLC,使用下面的方式来进行逻辑控制顺序控制,都是非常好的一种编程方法。既方便监控又可以随意跳转到哪一步。请改变一下我们的编程思维好么?我看那些人的所谓步进指令,还有大量的置位复位指令,非常不好阅读,也不好检查和更改。下面贴出利用三菱软件的编程图,其它品牌都一样可以采用(西门子更是如此)。
其实这就是ST编程里的ST语言的CASE语句的梯形图转换。
所以很多人说什么ST语言只适用于计算,不适用于逻辑控制什么的,我就呵呵了。ST语言也一样适用于逻辑控制,只是看各位编程人员擅长于使用哪种编程语言了。下面再贴出上述编程方式的ST语言下的控制:
下面是监视的过程:
这和梯形图下的顺序控制方式是一样的。这种控制方式比那些所谓的置位复位要方便很多。建议从日系编程学习入门的朋友转变一下思维,摒弃那种编程方式!
莫头脑 said:
我看那些人的所谓步进指令,还有大量的置位复位指令,非常不好阅读也不好检查和更改 那他们的程序是否正常运行……
965528555 said:
正常运行是一回事,是否更具有阅读性或者说,是否愿意接受更好的表达方式那是另一回事。
1530694073 said:
我表示欧美系都是不步进顺序逻辑,可读性很强
cvlsam said:
真正的日系编程思维是这样的,当然译码编码指令其他PLC厂牌中也有。
D500就是显示运行到哪一步,M寄存器还可以在人机界面上做个跑马灯演示。
Good Luck~
gk_0 said:
我觉得置位复位挺好用的呀,也很直观呢。楼主例子中大量使用比较、运算指令,如果几千步以上,那么扫描时间是否会比位指令长很多呢?
965528555 said:
这里首先我们明白一个问题,即不管你的程序是多少步,PLC的扫描永远是从程序的首端扫描到END,这个过程是一样的。而PLC在扫描某一行时,通过你所说的比较运算指令即可判断该行是否成立从而是否继续扫描该行后面,反而可以节省时间,即该条件不满足就可以跳到下一个。而置位复位则不一样了,每行都得扫描完才能下一个。其实是更节省PLC的扫描时间,比如CASE语句,第一行就会判断Step等于几,然后就直接跳到等于几的那行去扫描了。假如是一万步十万步,这中间就节省了非常多的扫描时间,但是置位复位就没这优势了。必须逐行扫描以免错过任何一个。
bnnyygy said:
一直都是这样写顺序控制的。欧姆龙ST语音写的,E文不好,变量都是中文。
965528555 said:
非常好,也感谢分享。但是建议最好是使用CASE语句来写你这个程序部分,而不是大量的IF语句。
273708367 said:
感觉越复杂可读性越差,扫描周期也越长,每个人习惯不同改变也不是一朝一夕了。
chi1225 said:
每一步前面都要搞一个比较指令,感觉不好看,指令占的空间又大,发现还是用DECO(解码指令)比较好。。
965528555 said:
那是因为三菱的软件一显示注释就显得大,而且一个比较指令占用的空间长,将近三四列,西门子根本不存在这个问题,人家的一个比较指令就占用一列。
MIC小赖 said:
这个模式从06年的台湾东捷的机台上就已经看到了,目前我们这动作部分管控基本都是这样写的。
965528555 said:
有一种论调很不好,即“我们都习惯那么久了,改变不是容易的事,要么就是你说的也不好用,虽然我没用过但肯定不好用”。这样想法不太好,之前我也是从日系入门学习的。后来我一学习西门子的时候我也是内心抵制它,一点也不好学,思想转不过弯来,不好用。后来我想我还是去熟悉它我才好判断它到底是不是好用,如果我熟悉它了它确实不好用我就舍弃它,用我认为好用的。 结果经过我的比较,发现西门子的PLC确实好用,那么我就接受它。 就文中所说的编程方法来说,我之前也是采用什么置位复位的方式,后来我看到国外的人是这样写,包括西门子博途软件的官方库写法,我觉得我可以先接受它然后运用一下,来写个实例,看是不是更方便,如果是,我接受,如果不是,我就舍弃。有一次有朋友说西门子的触摸屏或WINCC的画面编辑用面板技术在某些场合非常方便。于是我就去了解它,当我学习并用面板技术做了一个HMI面面(比如现场十套控制几乎相同的过程画面),我觉得确实不错,那么我就去接受它。所以如果在工作中有一种别人推荐你而你没有使用过的方式方法,请不要先拒绝,拿你那些老习惯来安慰自己来躲避。应该先尝试一下,然后对比一下,也许你会有所收获呢?或者说你可以试完了再骂人家这SB,不行啊,还是没我之前的习惯用法好。
yinguiyao said:
有步进指令的用步进指令,没有的就用你这个方法,如西门子200 200smart就没有步进指令。用步进指令好处是不用考虑时序的问题,同一时间段只有指定步被扫描,而你这个方法要注意同一扫描周期相邻两步不被同时执行,例如在每步都加时间延时或者其它的办法。我发过一个贴子,参考:
http://bbs.gkong.com/archive.aspx?id=463847
cvlsam said:
200中有步进指令,只是中文翻译成顺序继电器指令了。
同一个扫描周期相邻两步并不会同时执行,因为PLC扫描机制决定了顺序执行。
西门子中的Graph并不是步进指令,而是顺序功能,也就是其他厂牌中的SFC,之所以使用Graph,是因为在西门子的PCS7系统中,还存在SFC编程方式,为了区别,就如同西门子的ST语言翻译成SCL,因为和其语句表STL容易冲突。Good Luck~
zhujilucj said:
我大部分用的还是置位复位指令,有少数几个程序也在用这种方法。这个方法特别适合跳跃分支多的程序。
来源/中华工控网工控论坛
一图看懂PLC输出自保持(自锁)与置位、复位指令异同,原来如此
相关问答
用三菱PLC控制步进电机正转一圈再反转一圈程序怎么做?
这个很简单的。你可以根据步进电机的步距角计算一下,步进电机旋转一圈所需要的脉冲数。例如:Y0是脉冲输出端,Y1是旋转方向控制端面,步进电机旋转一圈是5000...
plc顺序控制指令?
西门子PLC顺序控制指令即西门子S7-200系列PLC控制指令,主要分为定义顺序段、段开始、段结束、段转移四个板块,详细简介如下:1、定义顺序段即定义一个顺序控...
PLC控制伺服电机驱动滑台,抵达P1点,置位气缸1,等待3秒,后然...
用步进4条回答:【推荐答案】人家呵呵如果DVDv的查查查吃哈查查
什么是置位位域指令?
置位位域指令是一种用于对位域进行操作的指令。平时,在程序中我们经常会使用位域来对变量进行压缩和保存,位域实际上是一个变量中的一部分,通过使用指定的位数...
麻烦好基友们求推荐一下正规PLC自动化编程培训位置,PLC自...
[回答]15.我在中山横栏,做了1年多CNC操机了,当初老板答应教我编程的,现在找师傅问个小问题都对我爱理不理的,想问下网友,啊,受够了这个师傅。名师高徒模具...
三菱仿真软件中步进指令怎和一般的不同那怎么接时间继电器等等一些东西?如果可以请帮我举个例子?
STL是步进梯形图指令,功能是步进指令开y始;步进编程时首先要对S继电器进行置位(SET),然后STL指令才d有效,当执行下m一h个cSET和STL指令时,上y一q个qSET指...S...
retset是什么意思我想让你帮我解释一下?
STL:步进触电指令用来“激活”某个状态;SET:置位,元件自保持ON;PLS:是脉冲上升沿微分输出指令;RET:用来返回主母线;STL:步进触电指令用来“激活”某个状态...
plc梯形图与继电器电路的区别是什么?
PLC梯形图和继电器电路的区别是什么?PLC是可编程控制器,在自动化领域中应用非常广泛,越来越多的维修人员和电工也在积极的学习编程方法以及维护维修方法,那...P...