当前位置:首页 > 消费电子 > 消费电子
[导读]初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以西门子PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。

初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以西门子PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以西门子PLC为例,但这些规则在其它PLC编程时也可同样遵守。

输入采样

在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

用户程序执行

在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。

即,在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。

输出刷新

当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。

同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。

西门子plc编程中应该注意的问题:

1.中断程序中可以调用子程序

累加器和逻辑堆栈式的存蓄器在中断程序和被调用的子程序中都是共用的

2.中断程序和主程序下数据是可以共享的

中断程序虽说是可以共享的,但是我们要注意的是中断事件中事情异步特性的因数影响,来解决共享数据的一致性问题,在中断事件中主程序执行的任何一个地方都是有可能出现的。

3.通信接口的中断

PLC的串行通信口是可以有梯形图或者语句表程序控制的。通信口的这种操作模式称为自有端口的模式。在自由的情况下,就可以用程序定义波特率,每个字节的位数等等,在执行主程序的过程中,申请中断,才能定义自由端口模式,利用接收和发送中断可以简化程序对通信的控制。

4.I/O中断

I/O中断包括上升或下降沿中断,告诉计数器中断和脉冲串输出中断。

S7-200CPU用输入I0.0~I0.3的上升或下降产生了中断,则发生的事件被输入端子捕获,这样的上升沿或者下降可被用来指示当某个事件发生时必须引起注意的条件。

5.时基中断

6.中断的优先级和排队

7.中断的限制

8.中断程序编程步骤

当数据用规定的格式输入后,在西门子PLC的内部存储器中均需要以二进制的形式存储,二进制格式与实际数据间的关系较复杂,它常常会给程序的调试与检查带来困难,为了更清楚地说明数据的使用方法与存储形式,举例如下。

【例1】利用数据装载指令(指令代码L),将各种十进制、十六进制数据读入到累加器ACCU1。

程序指令如下:

①L+27 ,/将单字长(16位)的十进制常数27读入到累加器l中;

②L1#一1 //将双字长(32位)的十进制常数一l读入到累加器l中:

③L2#1010 0000 0010 0001 //将单字长(16位)的二进制数1010 0000 0010 0001读入到累

加器l中;

④LDW#16# AOFl_BCD4 //将双字长(32位)的十六进制常数AOFl BCD4读入到累加器l中;

⑤L-2.5 //将双字长(32位)的浮点数“-2.5”读入到累加器l中(有关浮点数c1勺存

储格式见后述)。

【例2】利用数据装载指令(指令代码L),将ASCII字符“END”读入到累加器1中,并确定其执行结果。

程序指令如下:

LfEND. ∥将ASCII字符“END”读入到累加器l中

对照表8-5.2“ASCII代码表”可知,E=45;N=4E D=44,所以本字符在累加器1中的执行结果为:“454E44”。

【例3】利用数据装载指令(指令代码L),将定时器时间值、计数器计数值读入到累加器1中,并确定其执行结果。

程序指令如下:

①LT#500ms ∥将定时器时间值(500ms)读入到累加器l中;

②LC#100 //将计数器计数值(100)读入到累加器l中;

定时器时间值、计数器计数值以常数形式存储,因此,累加器l的执行结果分别为500与100。

【例4】利用数据装载指令(指令代码L),将2字节(16位)的常数100、20分别读入到累加器1的高、低字节中,并确定其执行结果。

程序指令如下:

LB# (100,20) //将2字节(16位)的常数读入到累加器l中;

本指令与常数读入指令“L+27”的区别在于:

L +27指令:执行指令是将常数27转换为二进制后存储于累加器1,因为27=(1B) 16,所以累加器l的执行结果为“00 1B”。常数值的范围为0~65535(即O—FFFF)。

L B# (100,20)指令:执行指令是将2个十进制常数转换为二进制后,分别存储于存储器的高字节与低字节中,因为100=(64)16;20=(14) 16,所以累加器1的执行结果为“64 14”。指令中括号内的常数值的范围为0~255(即O~FF)。

相关指令:

LB# (100,20,12,15) //将4字节(32位)的常数读入到累加器l中。

【例5】利用数据装载指令(指令代码L),将4字节(32位)的地址数据10.2、M10.2分别读入到累加器1中,并确定其执行结果。

程序指令如下:

①LP#10.2 /,将双字长(32位)的地址数据读入到累加器l中;

②LP#M10.2 //将双字长(32位)的地址数据读入到累加器l中;

地址位(bit31):“0”指针寄存器不含地址符,地址符bit24~bit26应为0;“l”指针寄存器含地址符,地址符由bit24~bit26指定。

地址符(bit24~bit26):地址位(bit31)为“1”时用于指定存储器地址,地址的编码如下:

000:地址P:

001:,地址I;

010:地址Q;

011:地址M;

100:地址DBX;

101:地址DIX;

110:地址L:

111:地址VL。

因此,在累加器1中,指令“L P#10.2”的执行结果为“0000 0052”;指令“L P#10.2”的执行结果为“8300 0052”。

【例6】利用数据装载指令(指令代码L),将日期数据2006-11-18读入到累加器1中,并确定其执行结果。

程序指令如下:

LD#2006_ll—l8 //将双字长(32位)的日期读入到累加器l中;

注意:日期在PLC中的存储格式为表格数据,且以1990年1月1日作为起点“O”;以后每天增加1,1990年1月2日为“l”。因此,2006年11月18日对应累加器l的日期存储数据为:6165;而2007年11月18日对应累加器1的日期存储数据为:6165+365= 6530。

【例7】利用数据装载指令(指令代码L),将时间数据13:20:33.125s读入到累加器1中,并确定其执行结果。

程序指令如下:

LTOD#13:20:33.125 ∥将双字长(32位)的对阅读入到累加器l中。

注意:时间在PLC中的存储格式为以ms为单位的数据,如:

13:20:33.125s =(13×3600 +20×60+ 33.125)s= 48033125 ms

因此,执行本指令后累加器1的时间存储数据为:48033125。

西门子plc编程软件支持新款CP243-1 (6GK7 243-1-1EX01-0XE0)。通过下列改进实现新的互联网向导:支持 BootP 和 DHCP,支持用于电子邮件服务器的登录名和密码。西门子plc编程软件可进行远程编程、诊断或数据传输。控制器功能中已集成了Profibus DP Master/Slave, ProfibusFMS和LONWorks。利用web server进行监控。储存HTML网页、图片、PDF文件等到控制器里供通用浏览器查看扩展操作系统功能。接下来,详细为你说下“西门子PLC编程小技巧 西门子PLC编程需注意的八个事项”

一、西门子PLC编程小技巧

1. 程序结构一个完整的程序可分为几个部分:【初始化程序】:一般是上电时调用一次,用来初始化设备,简单化的初始化程序需要在初始化的时候复位整个工艺设备到零位。复杂化的初始化程序需要在这里调用设备之前的执行信息,即延续上次停机时的执行过程。我们一般使用SM0.0(上电时保持一个周期的ON)来使能初始化程序。【主程序】:主程序这里是用来循环执行的,确保设备的正常工作。【子程序】:子程序一般为设备执行的不同工艺(工序)。供主程序调用。一些重复多次使用的代码可以编写为子程来调用。【内存分配】:内存分配一般是用来规划PLC的内部寄存器的区域和适用范围,方便编程和调取,同时方便上位机的通讯使用。

2. 关于内存分配技巧一般在编程时我们会将内存分配为不同的区域段,例如:【VW0-VW99】:通讯动态调用区域,写一些中建变量等。【VW100-VW199】:采集结果保存区域。温度、压力等。【VW200-VW299】:通讯区域,部分为上位机读取区域,部分为写入区域或者可读写区域。……【VW2000-VW3000】:库存储区,用于加载库文件的存储区域。*说明:良好的内存规划习惯会使得编程特别便捷和明了。同时也提高了程序的可读性。配合自定义的变量名使用会使得整个程序的二次读写性更好。

3. 变量名规划良好的变量名规划可以高效的完成程序的编写,例如:VD100:WD1-f(浮点型温度值1)VD104:WD2-f(浮点型温度值2)VB108:ZT1-b(字节型状态值1)VW109:ZS1-w(字型转速值1)其他物理量类似。用户也可使用英文名缩写等……在规划变量时最好的方式是将相同类型的变量连续规划。再者就是最好是以十为单位进行区域段划分这样调用时比较清晰明了。例如:【VD100-VD120】:WD1-f……WD5-f(多余部分可留作备用,一般都会预留备用点,一备程序后期扩展使用)【VB130-VB139】:ZT1-b……ZT10-b

二、西门子PLC编程需注意的八个事项

西门子plc编程中应该注意的问题:

1.中断程序中可以调用子程序

累加器和逻辑堆栈式的存蓄器在中断程序和被调用的子程序中都是共用的

2.中断程序和主程序下数据是可以共享的

中断程序虽说是可以共享的,但是我们要注意的是中断事件中事情异步特性的因数影响,来解决共享数据的一致性问题,在中断事件中主程序执行的任何一个地方都是有可能出现的。

3.通信接口的中断

PLC的串行通信口是可以有梯形图或者语句表程序控制的。通信口的这种操作模式称为自有端口的模式。在自由的情况下,就可以用程序定义波特率,每个字节的位数等等,在执行主程序的过程中,申请中断,才能定义自由端口模式,利用接收和发送中断可以简化程序对通信的控制。

4.I/O中断

I/O中断包括上升或下降沿中断,告诉计数器中断和脉冲串输出中断。S7-200CPU用输入I0.0~I0.3的上升或下降产生了中断,则发生的事件被输入端子捕获,这样的上升沿或者下降可被用来指示当某个事件发生时必须引起注意的条件。

5.时基中断

6.中断的优先级和排队

7.中断的限制

8.中断程序编程步骤

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭