IL语言非常接近汇编语言,编码后,PLC处理器能很容易识别,但是梯形图是图形元素,CPU不容易识别,所以要将梯形图先编译为IL语言。本文提供了一种递归编译的方式,不完善的地方,还请见谅。
转换思路:
将梯形图以网络为单位进行遍历,选择一个网络进行分析,梯形图本质是块和块之间的串联,串联的块中又可能包含了并联关系,但是并联关系中,其实也是串联块的并联。如图1:
在整个梯形图编译的过程中,主要使用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个之间是串联的关系。
图1
(现在是在步骤1中)依次将块1,块2,输出块传入步骤2,根据步骤1可知,块2后面需要加入ANB指令。
块1传入步骤2后,可以分析到块1是由2个串联块A、B并联组成的。如图2:
图2
(现在是在步骤2中)依次将A、B传入步骤1,根据步骤2可知,B传入步骤1后,要加上ORB指令。
块A传入步骤1后,可以分析到块A是由3个块a,b,c串联组成的,如图3:
(现在是在步骤1中)然后依次将a,b,c传入到步骤2中进行分析,根据步骤1可知,b进入步骤2后,要加入ANB指令,C进入步骤2后,也要加入ANB指令。
块a可以分析得到是由3个单行的串联a1,a2,a3块并联组成的。
(现在是在步骤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
在这个算法中,将梯形图元素分块,是最关键的,所以要处理好梯形图元素的分块,至于怎么分块,就需要自己想了哟~
电气施工图纸会审工作要点
1、要审查设计图纸是否符合相关规范或有关技术质量标准,设计是否合理,考虑经济承受能力和投资取得的回报,设计和选用的产品应是开放型的,便于有条件时系统扩展、互联和信息共享。 2、要根据工程的特点和使用功能,明确业主对其项目的定位和需求。应提供意见和建议与业主,及早协调明确要设置哪些系统,以便所设系统与主体工程同步进行,避免主体完工后再上系统,难于施工,造成对建筑主体结构的破坏,加大返工
0评论2024-11-03409
看电气施工图纸时的注意事项
1、动力配电系统是否满足其他相关专业要求,控制原理是否合理。配电系统图线径、预埋管型号、回路编号与平面图上标注是否统一。 2、电缆桥架、插接母线、线槽等的位置、标高是否合理及便于安装,避免与风管、水管等“打架”,电专业图纸安装位置与其他专业安装位置不一等现象,现在设计中出现这种情况,各专业设计师间缺少协调和沟通,各自出图,就会出现如上所说的现象。我们施工前一定要把几个专业的安装
0评论2024-11-03351
哪些项目需填入操作票?哪些操作可不填写操作票?
下列项目须填入操作票内:1)应拉合的开关和刀闸;2)检查开关和刀闸的位置;3)检查接地线是否拆除;4)检查负荷分配和表计指示;5)装拆接地线;6)拉合控制回路、合闸回路的操作保险、合闸保险或刀闸;7)拉合保护回路的直流保险或刀闸,投退或切换保护压板;8)拉合电压互感器回路保险器、刀闸或开关;9)投退重合闸,联锁、同期开关;10)验电、放电。 下列操作可不填写操作票,但应执行操作监
0评论2024-11-03444
电流互感器误差计算流程图
按书上的排版方式讲电流互感器误差计算感觉不简洁、不清晰,就做了这个流程图出来,自我感觉不错。欢迎同行指正。
0评论2024-11-03327
PLC编程学习的好处
一、可以提高电脑水平。 学习PLC编程,首先要学会各种PLC、触摸屏软件安装和卸载,打字当然也是必不可少的要求,软件中的菜单的应用相当于把电脑的基础知识好好的学习了一番,一些人用电脑只会用鼠标点击,久而久之,这其实还是电脑盲,而学好PLC编程,键盘鼠标都要配合使用。在电脑硬件方面,电脑配置要求,串口以及外置接口在学习中自然而然学好了。 二、自然而然也学好了英语。 PLC软件里面的指令L
0评论2024-11-03412
怎样学好PLC编程
一、PLC主要是指数字运算操作电子系统的可编程逻辑控制器,用于控制机械的生产过程。也是公共有限公司、电源线车等的名称缩写。怎样学好PLC专业?步骤/方法:学习PLC首先要选好学习那一个厂家的PLC,日系的PLC内部软件集成度高应用简单。早期的OMRON、三菱应用比较多、现在由于贸易和国际间的合作关系应用西门子PLC、罗克韦尔的多一点,(尽管说学一种品牌学精深了,其他的也会很快上手,但人的精力
0评论2024-11-03428
PLC高手进阶之路
1.面对工作时最好能有自己的思路,有自己的想法。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。 2.PLC书本是必须的,电子书会浪费你更多的时间,当然网上学习是必不可少的,可以查阅PDF文档。 3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件什么都不懂很正常,手册正是我们的好帮手,实在弄不懂在去问别人,每个人工作的时间都是很宝贵的。 4.不要蜻蜓
0评论2024-11-03350
配电箱及开关箱施工安装要点总结
1.配电箱及开关箱的设置(1)配电系统应设置总配电箱及分配电箱,实行分级配电。(2)开关箱应由末级分配电箱配电。(3)开关箱与控制的固定式用电设备的水平距离不宜超过3M。(4)配电箱、开关箱周围应有足够二人同时工作的空间和通道,不得堆放任何妨碍操作、维修的物品。(5)配电箱、开关箱应装设端正、牢固,移动式配电箱、开关箱应装设在坚固的支架上。固定式配电箱、开关箱下底大于1.3M,小于1.5M。
0评论2024-11-031054
发电机定子转子一点接地现象及处理方法
发电机定子一点接地:现象:1) 警铃响,发电机“定子一点接地”光字牌亮;2) 定子绝缘检查,接地的一相电压为零或降低,其余相为线电压或升高。处理:1) 据表计判明是真接地还是假接地;2) 如定子接地保护投了“跳闸”但保护拒动,应立即手动解列发电机;3) 定子接地保护投信号时,如发信应立即查找接地点,接地光字牌设法予以消除;4) 若为真接地,且外部回路设备无明显接地点,应迅速汇报值长、中调,然
0评论2024-11-03492
电容器检测方法
电容器检测方法主要分为三个大类:可变电容器的检测、电解电容器的检测、固定电容器的检测。 1、可变电容器的检测 A用手轻轻旋动转轴,应感觉十分平滑,不应感觉有时松时紧甚至有卡滞现象。将载轴向前、后、上、下、左、右等各个方向推动时,转轴不应有松动的现象。 B用一只手旋动转轴,另一只手轻摸动片组的外缘,不应感觉有任何松脱现象。转轴与动片之间接触不良的可变电容器,是不能再继续使用的。 C将万
0评论2024-11-03458