搜档网
当前位置:搜档网 › ab实验 Lab 3_RSLogix5000软件编程实例

ab实验 Lab 3_RSLogix5000软件编程实例

ab实验 Lab 3_RSLogix5000软件编程实例
ab实验 Lab 3_RSLogix5000软件编程实例

Lab 3. RSLogix5000软件编程实例

实验主题:

创建项目(具体步骤参见实验一和实验二)

z创建RSLogix5000工程

z配置模块

z建立任务

z建立程序和例程

z建立TAG

指令应用

z位指令— XIC、XIO、OTE、OTL、OTU、ONS等

z计时器和计数器— TO N、TOF、CTU、CTD、RES等

z输入输出指令-MSG等

z比较指令— CMP、LIM、EQU、LES、GRT等

z数据传送指令— MOV、MVM、COP等

z函数计算指令— CPT、ADD、SUB、MUL、DIV、CLR等(注意溢出等问题)

z程序控制指令— JMP、JSR、RET等

z PID指令——张力控制(手动自动调节、KP、KI的设定、跟踪)

Tag名的定义及程序设计方法:怎样优化程序,提高程序的可读性

z Tag命名的规范和标准

z程序命名的规范

z压缩程序,同一功能用统一程序

z减少跳转

如何编写大规模、复杂的程序

z做好编程准备工作,了解程序的需求性

z理清思路,做好功能分块

z从单个设备开始,从最基本的逻辑开始

z保证单动正确,然后加上连锁

z安全第一,模拟运行

如何保证安全

z MCC测试位置运行

z软件I/O强制

z停止第一

z必须有手动功能

程序的修改

z尽量避免下载程序,大规模在线修改技巧

RSLogix5000指令应用实例:

一、位指令

XIC(检查是否闭合)和XIO(检查是否断开)是输入指令,OTE(输出激励)、OTL(输出锁存)和OTU(输出解锁)是输出指令。位指令要求操作数的数据类型都必须是BOOL。

应用程序如下图所示(编程方法参见实验二):

当控制器处于运行或者远程运行状态时,可以在标记数据库的Monitor(监视)页面中或者通过右键菜单改变某一个中间变量(非I/O点,指由用户自己定义的标签)的值。

点击这里

当输入条件发生变化时,测试输出结果如下所示:

如果Limit_switch_1=1 并且Limit_switch_2=0,则Light_1灯亮;如果Limit_switch_3=1,则Light_2灯亮,并且锁存该状态,即使下一轮程序扫描到Limit_switch_3=0,Light_2灯依然点亮,如测试结果②中的梯级1的输出状态所示。

如果Limit_switch_1=1 并且Limit_switch_2=1,则回路中的常闭触点被打开,Light_1=0,灯灭。

如果Limit_switch_4=1,则Light_2灯的输出锁存被解除,灯灭。

注意:程序的一行梯级中,可以只有输出指令,但不能只有输入指令,否则将产生逻辑错误。

二、计时器和计数器指令

TON(延时导通计时器)、CTU(加计数器)、RES(复位指令)等指令都是输出指令。

计时器指令要求操作数的数据类型必须是计时器结构体TIMER,该结构体中包含的元素如下表:

元素数据类型说明

.EN BOOL 使能位-标识计时器指令被使能

.TT BOOL 计时位-标识计时操作正在进行

.DN BOOL 完成位-标识计时操作已完成

.PRE DINT 预置值-用户预设的计时要求值

.ACC DINT 累加值-标识指令被使能后经过的时间

RSLogix5000中计时器的时间基为1ms,例如,如果用户需要一个2s的计时器,应当将预置值设置为2000。

计数器指令要求操作数的数据类型必须是计数器结构体COUNTER,该结构体中包含的元素如下表:

元素数据类型说明

.CU BOOL 加计数使能位-标识加计数器指令被使能

.OV BOOL 溢出位-标识计数值超过上限值2147483647

.DN BOOL 完成位-标识计数值已等于或大于预设值

.PRE DINT 预置值-用户预设的计数要求值

.ACC DINT 累加值-标识指令被使能已经计过的次数

TON和CTU指令的应用程序如下所示:

当输入条件发生变化时,测试输出结果如下所示:

如果Limit_switch_1=1,计时器Timer_1开始计时,Timer_1.TT位被置1,Light_1灯亮。

当计时器计时完成,Timer_1.DN位被置1,Light_2灯亮,计数器Counter_1计数一次。

当计数器计数达到5次后,计数工作完成,Counter_1.DN位被置1,Light_3

灯亮。

如果Limit_switch_2=1,计数器Counter_1被复位。

三、比较指令

CMP(比较表达式指令)、EQU(等于指令)、GRT(大于指令)、LES(小于指令)、LIM(极限比较指令)等指令都是输入指令。

比较指令的应用程序如下图所示:

测试输出结果如下所示:

对于极限比较指令LIM,如果Low Limit < High Lim it,则当测试值等于或在Low Limit和High Limit之间时,Light_4灯亮;如果Low Limit > High Limit,则当测试值等于或在Low Limit和High Limit之外时,Light_5灯亮。

四、计算指令

ADD(加法指令)、SUB(减法指令)、MUL(乘法指令)、DIV(除法指令)、CPT(表达式计算指令)等指令是输出指令。

计算指令的应用程序及测试结果如下图所示:

在使用计算指令的时候,要特别注意溢出问题,如测试程序的梯级2的输出结果所示,Value3×1000所得的结果超出了RSLogix5000中整形数据的数值范围(最大值为2147483647),因此发生了溢出,得到了不正确的计算结果。

计算指令支持混合数据类型变量的使用,但是这样会损失精度,也可能发生取整误差,而且指令执行时间长。最优的数据类型是DINT或REAL。

五、数据传送指令

MOV(传动指令)、COP(文件复制指令)等指令是输出指令。

MOV、COP等指令支持混合数据类型变量的使用,但是这样会损失精度,也可能发生取整误差,而且指令执行时间长。最优的数据类型是DINT或REAL。

数据传送指令的应用程序如下图所示:

当输入条件发生变化时,测试输出结果如下所示:

如果Limit_switch_1=1,则Timer_1结构体被复制到Array_1数组中,覆盖的目标地址为Array_1的前三个元素。

如果Limit_switch_2=1,则Timer_1结构体的元素0、元素1和元素2分别被复制到Value0、Value1和Value2中。

RSLogix5000的软件编程实例:

简单的题目,经典的道理

题目1:编写程序产生一个方波

用于重复性控制条件

题目2:编写程序产生一个脉宽可变的方波

用于可变可调的比例控制

题目3:无需手动控制,0~3号灯循环点亮,每个灯亮1S

题目4:0~4号灯循环亮,每个灯亮1S,循环5次结束。规定地址start:循环开始;stop:循环停止;OUT0~4表示灯

如果有开关量输出模块输出到实际输出地址中,观察模块的状态灯。

适用于周期性工作的设备,如果某些排渣阀

题目5:写出传动程序中的爬行运行切换的程序。

考察指令的灵活运用,是否实现功能,程序是否简单易读

题目6:编写一阀门控制,完成自动循环动作,(有多个逻辑,手动控制,液位连锁,电机连锁,计时连锁,可选)。考察学员如何编写程序实现多个条件的逻辑控制。

Tag自己定义,要求简单易懂。程序逻辑明了

例:除砂器冲洗程序:

通过现场控制面板“本控/DCS”按钮控制中浓除砂器,当打到DCS时,起动按以下程序:

1、检查顶部排渣阀门是否关闭,如果关闭,请到下一步;

2、打开底部排渣阀;

3、打开冲洗水阀;

4、延时15秒;

5、关闭底部排渣阀;

6、延时45秒;

7、关闭冲洗水阀;

8、检查底部排渣阀是否关闭,如果关闭,请到下一步;

9、打开顶部排渣阀;

10、600秒后;

11、关闭顶部排渣阀;

回到步骤1

编写程序应掌握一个原则,就是直接输出地址只能出现一次。即使逻辑正确也要避免同一直接输出地址出现多次。

题目7:编写MCC电动机启动程序。

地址:IN0:ready

IN1:fault

IN2:running

OUT0:start_command

本题有简单----复杂的编辑方法,由简单到复杂体现到编程人员的考虑问题的全面性

考察:程序的完整性,安全性(延时自动停止),全面的故障分类。

题目8:有A,B两台电机,现在客户要求:A停止时B要停止;B停止时A要停止。

地址:IN0:A电机ready信号

IN1:A电机running信号

IN2:A电机fault信号

IN3:B电机ready信号

IN4:B电机running信号

IN5:B电机fault信号

OUT0:A电机输出

OUT1:B电机输出

可行性分析!

题目9:有一油泵站,有两台电动机A,B互为备用,只有一组启动/停止按钮,要求和油压信号连锁,实现手动和自动启停,两台要循环启动,增加使用寿命。

地址:IN0:A电机ready信号

IN1:A电机running信号

IN2:A电机fault信号

IN3:B电机ready信号

IN4:B电机running信号

IN5:B电机fault信号

IN6:油压连锁信号,1=自动启动,0=自动停止

OUT0:A电机输出,OUT1:B电机输出

题目10:编写一浓度PID控制指令。

完成PID调节---手自动切换----正反向调节-----输出限幅

考察:有没有手动/自动切换,切换有没有做到无扰动,有没有考虑连锁等

题目11:编写流量的累积值

考察:时间基准的应用,学会正确应用中间值,清零是否合理,有无防止溢出。

题目12:有0~9号电机,由外部信号控制组启动和停止,按顺序间隔5S启动。

编写程序

考察:对比较大的程序的编写,启动/停止是否为脉冲,运行状态信号是否

作为连锁条件,是否考虑到长时间启动不成功自动停止,外部连锁信号是否滤波

例:底浆粗选工段

本工段设备包括:2#碎后池、2#碎后池搅拌器M20、粗筛供浆泵M21、一段

粗筛M53、浮选筛浆机M24、稳位箱、排渣分离机M25、二段粗筛M26, 浮选筛进

料池搅拌器M22, 浮选筛浆机供浆泵M23。

DCS总开机程序:

1、联锁投入,总起动;

2、设定二段粗筛良浆出口阀门FV3204 0%开度,排渣阀50%开度;

3、设定浮选筛浆机良浆出口阀门FV3205 0%开度,轻渣排渣阀FV3203

100%开度;

4、设定一段粗筛良浆出口阀门FV3202 0%开度,排渣阀FV3201 50%开度;

5、HC3201阀开,HC3205a阀开;

6、起动排渣分离机电机M3207;

7、延时5秒,起动二段粗筛电机M3208;

8、延时5秒,二段粗筛排渣阀回复动流量自动控制位置上,二段粗筛良浆出

口阀在15秒内打到预设的25%的开度,然后打动流量自动控制位置上。

9、延时5秒,起动浮选筛浆机电机M3205;

10、延时5秒,起动一段粗筛电机M3201;

11、浮选筛进料池液位等于或大于30%;

12、浮选筛进料池搅拌器起动;

延时5秒,起动浮选筛浆机供浆泵电机M3204;

13、浮选筛浆机良浆出口阀门15秒内打到预设的25%的开度上,然后打到流

量自动控制位置上,浮选筛浆机排渣阀回复到流量自动控制位置上;

14、延时3秒,起动2#碎后池搅拌器电机M3110;

15、延时5秒,起动一段粗筛供浆泵电机M3111;

延时5秒,一段粗筛排渣阀回复动流量自动控制位置上,一段粗筛良浆出口阀在

15秒内打到预设的25%的开度,然后打动流量自动控制位置上。

联锁:

1、如果一段粗筛供浆泵电机M3111停止,一段粗筛良浆阀将马上关闭,且一

段粗筛主电机只能运行2min;

2、如果一段粗筛主电机M3201停止,一段粗筛供浆泵电机M3111将不能起动;

3、如果二段粗筛电机M3208或浮选筛浆机电机M3205停止,浮选筛供浆泵电

机M3204将停止;

4、如果浮选筛浆机供浆泵电机M3204停止,浮选筛浆机电机M3205及二段粗

筛电机M3208只能运行2min;

5、如果以下任何电机停止超过15秒,所有其后的电机也将停止:

a:分级筛供浆泵电机M3211;

b:一段粗筛供浆泵电机M3111;

6、如果以下任何电机停止超过15秒,所有其后的电机也将停止:

a:浮选筛供浆泵电机M3204;

b:一段粗筛供浆泵电机M3111。

Note:

相关主题