PLC梯形图编译原理

时间:2023-03-20作者:佚名
IL语言非常接近汇编语言,编码后,plc处理器能很容易识别,但是梯形图是图形元素,CPU不容易识别,所以要将梯形图先编译为IL语言。本文提供了一种递归编译的方式,不完善的地方,还请见谅。
转换思路:
将梯形图以网络为单位进行遍历,选择一个网络进行分析,梯形图本质是块和块之间的串联,串联的块中又可能包含了并联关系,但是并联关系中,其实也是串联块的并联。如图1:


PLC梯形图编译原理


在整个梯形图编译的过程中,主要使用2个步骤(或者叫函数),一个步骤分析块之间的串联关系,一个步骤分析块之间的并联关系。

步骤0:先初始化开始行为网络的第一行,开始列为第一列,结束列为最后一列。然后进去步骤1。
步骤1、
(1)建立一个块堆栈BlockStack,输出堆栈OutputStack。
(2)首先将图进行串联块的分析。将分析到的块压入BlockStack,输出块压入OutputStack.
(3)遍历BlockStack,对每一个块进行分析,
1)如果块的行数大于1,表示块中有并联关系,到步骤2分析该块。
如果块不是第一个块,则要在并联关系解释完后,加入ANB指令。
2)如果块的行数等于1,表示块已经是最简串联块,直接输出块的语句。
如果块是第一个块,使用LD加载第一个元素,依次往后使用AND。(至于使用LDI,还是ANI,请判断元素的类型。)
如果块不是第一个块,使用AND加载第一个元素,依次往后使用AND。

(4)遍历输出块。
如果输出块是多行,使用步骤2分析输出块。
如果输出块是单行,则直接输出块中元素:OUT、SET、RST。
步骤2、
(1)首先判断传入的块是输出块还是普通块。如果是输出块,建立一个记录标志。
(2) 建立一个或堆栈.OrBlockStack.
(3) 分析块Blcok中由哪几个串联块并联而成,将块压入OrBlockStack中.
(4) A、遍历OrBlockStack,每一个串联块进行步骤1串联分析。
B、为每一个串联块加上并联关系。
1)如果是输出:如果一共有2个分支,则第一个分支加入MPS,第二个分支加入MPP。
如果分支大于2个,则第一个分支加入MPS,最后一个分支加入MPP,其他分支加入MPR。
2)如果不是输出:如果串联块中横线方向元素个数大于1个,加入ORB,如果只有一个元素,加入OR,进入步骤3检查代码。如果没有元素,就是短路。报错。
步骤3:全部完成后,对指令进行分析,如果有
LD Xn
OR
这样的指令,要合并为:
OR Xn.
举例说明:
梯形图程序如图1,可以划分为3个块:块1,块2,输出块。3个之间是串联的关系。



PLC梯形图编译原理

图1
(现在是在步骤1中)依次将块1,块2,输出块传入步骤2,根据步骤1可知,块2后面需要加入ANB指令。
块1传入步骤2后,可以分析到块1是由2个串联块A、B并联组成的。如图2:

PLC梯形图编译原理


图2
(现在是在步骤2中)依次将A、B传入步骤1,根据步骤2可知,B传入步骤1后,要加上ORB指令。
块A传入步骤1后,可以分析到块A是由3个块a,b,c串联组成的,如图3:

PLC梯形图编译原理



(现在是在步骤1中)然后依次将a,b,c传入到步骤2中进行分析,根据步骤1可知,b进入步骤2后,要加入ANB指令,C进入步骤2后,也要加入ANB指令。
块a可以分析得到是由3个单行的串联a1,a2,a3块并联组成的。

PLC梯形图编译原理



(现在是在步骤2中)再依次把a1,a2,a3传入步骤1进行串联分析,根据步骤2可知,X2传入步骤1后,要加入OR指令,X3传入步骤1后,也要加入OR指令。
a1进入步骤1,可以得到a1只有一行,所以直接输出a1为
LD X1
a2传入步骤1,可以得到
LD X2
OR
a3传入步骤1可以得到
LD X3
OR
最后对指令进行分析,只要有
LD Xn
Or
这样的,都合并为OR Xn.
整理后得到指令为:
LD X1
OR X2
OR X3
。
依次往后遍历,最后能得到所有的指令为:
LD X1
OR X2
OR X3
LD X4
OR X5
ANB
LD X6
OR X7
ANB
LD X9
OR X10
LD X11
LD X12
ANB
ORB
LD X13
OR X14
LD X15
OR X16
ANB
OR X17
ANB
OUT Y1
在这个算法中,将梯形图元素分块,是最关键的,所以要处理好梯形图元素的分块,至于怎么分块,就需要自己想了哟~

相关阅读

接触电阻增大的原因及对温升的影响

当两个金属导体相接触时,在接触区域内存在着一个附加电阻,称为接触电阻。接触电阻由收缩电阻和膜电阻组成。即: Rj=Rs Rb (1) Rs:收缩电阻 Rb:表面膜电阻 导体总电阻 R为:R=Rl...
2023-03-21

DIY一个高保真音频放大器电路

您是否曾经在家中使用简单的组件构建过超酷的Hi-Fi音频放大器?如果没有在这里是你的指南,我很确定你会喜欢这个。本文讲述了如何制作带有输出晶体管保护电路和 2 分频扬声器保...
2023-06-20
DIY一个高保真音频放大器电路

图腾柱驱动电路设计 图腾柱驱动电路的作用与原理

为什么取名图腾柱?  由于此结构画出的电路图有点儿像印第安人的图腾柱,所以叫图腾柱式输出(也叫图腾式输出)。输出极采用一个上电阻接一个NPN型晶体管的集电极,这个管子的...
2023-07-15
图腾柱驱动电路设计 图腾柱驱动电路的作用与原理

电缆桥架弯头45°上下爬坡弯制作以及计算公式

目前电建施工中所使用的电缆桥架弯头一般是由电缆桥架厂在出厂之前完整加工好的,但是由于施工现场情况各不相同,所以有的项目需要因地制宜现场加工电缆桥架弯头,这就需要安...
2023-06-11
电缆桥架弯头45°上下爬坡弯制作以及计算公式

考电工证,对抗AI冲击的新办法

“用电的地方就需要电工,这行永远缺人。”北京一家电工证培训机构的客服在屏幕那头语气平淡的陈述着。但他随即补充了一句,“现在报名的人太多了,考试名额有时...
2026-03-24
考电工证,对抗AI冲击的新办法

热销商品

公牛开关插座面板全屋定制全屋配齐家装报价单官方正品付款链接Q9

公牛开关插座面板,为您的全屋定制家装提供一站式解决方案。我们提供全屋配齐的家装报价单,确保您的家装项目完美无缺。所有产品均为官方正品,品质保证,让您用得放心。...
¥ 1

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

定做定制各类密封条三元乙丙橡胶硅胶PVC防火阻燃EVA氯丁石墨丁晴

本公司专业定做各类定制密封条,涵盖三元乙丙橡胶(EPDM)、硅胶、PVC、EVA、氯丁橡胶、丁腈橡胶及石墨复合等多种材质,满足不同行业对密封、防水、隔音、隔热及防火阻燃...
¥ 1

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目