【VB开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VB开源代码-模拟电梯PLC程序说明 - 毕业设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
模拟电梯PLC 程序
说明 2007.3 一、系统软件 模拟电梯 PLC 是 SIEMENS 公司的 S7-200 系列 PLC,该
系列 PLC 一般用在小型
控制系统上。
S7-200 系列 PLC 的编程软件是 Step7-Micro/Win 4.0。
在功能和使用上都比STEP7 V5.3 的
软件要简单,SIEMENS
公司提供了 S7-200 系统的
详细说明书。
这里只简单介绍 Step7-Micro/Win 4.0 的中地址和通讯,这与 S7-300/400PLC有较的
的不同。
1、变量地址1.1 I/O 地址 相比 STEP7 V5.3 软件来说,Step7-Micro/Win 4.0 要
简单得多,没有硬件态功能,所有的硬件 I/O 地址都由模块
物理位置确定的,从 CPU
模块开始,依次往后面排列。
开关量输入/输出地址, 从 分别表示为 I 和 Q, I0.0 或 Q0.0 开始一直往下排,I、Q 使用的是不同的地址空间,可以相同,如 I3.2 和 Q3.2 同时
出现是允许的 模拟量输入/输出地址,分别表示为 AIW 和 AQW,从 AIW0 或 AQW0
开始一直往后排,模拟量输入/输出的地址都是 16 位的字,所以对于 AI 来说,排列的顺序应该是 AIW0、AIW2、AIW4…….,模拟量输出也是如此。
1.2 内存地址M 顾名思义,这些地址都存放在 CPU 的
内存中,一般情况下,断电后保存在 M中的数据会丢失,但在 CPU 的系统参数中可以将部分 M 设置成保存,这样在重新上电后,数据可以恢复(后面
介绍) 。
M 地址支持位操作(如 M3.2) 、字节操作(如 MB4) 、字操作(如 MW6) 、双字操作(如 MD0) 。
S7-200 PLC 中的 M 地址用法与 S7-300/400PLC 中的一样。
另外,系统中还有一些特殊的 M 地址,用在中断、通讯等专用功能上,如后面程序中用到的 SM0.0、SM0.1、SMB47 等。
1.3 存储数据区(V) V 数据是可以断电保存, 相当于 S7-300/400PLC 的 DB,但比 DB 的用法要简单,在 200PLC 的 CPU 中只有一个连续的 V 地址空间,使用前也不
必要定义。
同 M 地址一样,V 地址也支持位操作(如 V3.2) 、字节操作(如
VB4)、字操作(如 VW6) 、双字操作(如 VD0) 。
1.4 定时器/计数器地址 分别保持定时器和计数器状态的地址。
特别要注意,在 S7-200PLC 中,各个定时器的时间分辨率是不一样的,同样是 200,在 T0 中表示 200MS,而在 T5 中则表示 20S。
分辨率 最大值 定时器号 1MS 32.767 s T0,T32,T64,T96 10 ms 327.67 s T1-T4,T65-T68,T33-T36, T97-T100 100MS 3276.7 s T5-T31 T69-T95,T37-T63 T101-T2552、通讯设置 在主画面上可以 打开 CPU 型号的对 话框,在 S7200PLC 中,
不同 CPU 型号, 不但地址空间有很大 差异,而且支持的系 统指令也不一样,这 一点在 PLC 选型时要特别
注意。
如果是在线方式,可以用 Read PLC 直接从 PLC 中读出 CPU 的型号。
在“Communication”可以设置 CPU 与计算机的通讯协议。
在 CPU226 上有两个通讯口,一个是 RS485 通讯口(P0),另一个(P1)用来和计算机或编程器
通讯,通讯协议是 PPI。
200PLC 本身
不能直接支持
PROFIBUS 协议,但通过 EMM277 转换可以实现与 S7300/400 的主从通讯。
图
中的地址栏上,Local 指的是
计算机的地址,Remote 是 PLC 的地址; 在右侧的 PLC 栏目中,显示正与计算机通讯的 200PLC 的型号和地址(如果
在线) ,双击可以重新扫描查找在线 PLC;
Set PG/PC interface 是设定控制面板上的 SIEMENS PLC 专用的通讯协议。
在此选择 PC/PPI 电缆,
确定串口的端口号就可以了。
二、
用户软件 Step7-Micro/Win 4.0 在程序由主程序和子程序组成,从使用上和 STEP7 V5.3差不多,电梯系统较小,只有两个程序段: 主程序(OB1) :控制电梯
系统的所有逻辑; 子程序(SBR0) :用来与 S7-400 PLC 通讯。
1、OB1 N1 是调用 DP 通讯子程序(SBR0),在 200PLC 中,子程序只能是
条件调 用,所以要加个 SM0.0,SM0.0 是系统标志位,在 PLC 运行时一直是 ON; N2 是清除急停信号,该信号是按下急停按钮时产生的标志位,每次上电时 自动清除,这句程序用到了系统标志位 SM0.1,在 PLC 开始运行时,SM0.1 设 为 1,在保留一个扫描周期后又自动设为 0,
一般用来实现初始
化的功能。
这段程序
作用是复位高速计数器。
模拟电梯的上下位置是用旋转编码器检测的,S7200PLC 接收编码器的信号要使用高速计数指令。
可以使用向导程序调用向导
程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。
要启动HSC指令向导,可以在
命令菜单窗口中选择Tools Instruction Wizard ,然后在向导窗口中选择HSC指令。
使用高速计数指令,首先要定义计数器号和运行模式。
电梯的位置编码器的 A、B 项分别接到了开关量输入点 I0.6 和 I0.7,所以选择的输入计数器号是 HSC1,模式是 9; 接着就要
定义设置控制字、设置初始值和预置值,这些值都
存在特殊存储器字节MB36 -SMD62中。
见下表: 本段程序第 1 句是用字节传送指令 MOV_B 传送 16 进制数FC 到 SMB47 中,SBB47 就是高速
计数器 HSC1 的控制字。
16 进制数FC
转换 2 进制
格式就是11111100,相当于给 SMB47 中每一位设定如下: SMB47.0 0 HSC1 复位信号为高电平有效; SMB47.1 0 HSC1 启动信号为高电平
有效; SMB47.2 1 HSC1 正交计数频率为 1 倍速; SMB47.3 1 HSC1 为增计数; SMB47.4 1 HSC1 为更新
方向(电梯有上行/下行) ; SMB47.51 向 HSC1 写新的预置值; SMB47.61 向 HSC1 写新的初始值; SMB47.71 HSC1 有效(允许计数) ; 第 2 句是用高速计数器定义指令设置 HSC1 的模式:计数器号为 1,
模式为 9; 3、4 两句是给计数器的设定值和初始值清 0。
这里要注意:在 200PLC 中,数据传送指令 要严格区分数据
类型,如字节传送用 MOV_B 字传送用 MOV_W 等。
第 5 句将控制字清 0,实际上就是禁止计数,最后面的 HSC 指令,用来启动
高速计数器 HSC1。
在急停状态下清除
所有的输出信号和运行标志位。
QD0 开关量输出的双字,包括 Q0.0-Q3.7,具体是
哪些输出可以在符号表中找到: MD5 中包括了电梯的各楼层的平层标志(电梯到了可以开门的高度); MD9 中包含了各层的上行和下行信号。
急停信号需要保存,所以用了(S)指令,指令下面的“1”标志只给 1 位置位;(END)指令是跳转到程序结束。
电梯变频器的速度给定
没有用模拟量端口,是通过 PLC 的开关量
端口发脉冲的方式实现的,PLC 上电时要将该端口复位为 0。
S7-200集成有高速冲输出功能,其输出点Q0.0和Q0.1可
形成高速脉冲串输出(PTO)或脉宽调制(PWM)。
PTO输出方波(占空比50),并可指定所输出的脉冲数量(从1到4294967295)和周期(以微秒或毫秒为单位)。
脉冲序列输出(PTO)功能可以
编程为产生一列脉冲或产生由多个脉冲序列组成的脉冲包络。
在脉冲包络操作方式中,PTO功能被编程为控制一个步进电机运行
一个简单的斜坡上升、运行和斜坡下降操作序列或更复杂的操作序列。
PWM 可变占空比的
固定周期的输出脉冲,周期和脉宽既可以用微秒又可以用毫秒为单位。
当脉宽等于周期时,占空比为100%,输出恒定为1;当脉宽等于0时,占空比为0,输出恒定为0。
电梯调速是PWM方式,输出口是Q0.1。
有关脉冲输出的指令可以使用向导程序编程。
PLS指令从特殊
存储器SM读取数据,程序按照其存储值控制PTO/PWM
发生器。
SMB67控制PTO0或者PWM0,SMB77控制PTO1或者PWM1。
表6-36对
用于控制PTO/PWM操作的存储器给出了描述。
可以使用表6-37作为一个快速参考,用其中的数值
作为PTO/PWM控制寄存器的值来实现需要的操作。
电梯在手动运行时, 运行是不按电梯的运行的逻辑
进行的,一般仅在调试中使用,所以在切换到手动模式时, 为安全起见,首先将 PLC 所有的输出都设为 0,程序中用的是 8 为复位
信号,
一次复位 1 个字节,与急停中的功能
基本一样。
N7 中第 1 句是设定 PWM 输出的控制字,设定值为 16 进制数D3,转换为2 进制为 11010011,即: SM77.01 更新周期值,因为变频器的速度要求是可变的,在
PWM 方 式下,PWM 的脉冲频率就是变频器的给定速度; SM77.11
更新脉冲宽度值; SM77.20 是 PTO 方式的参数,在 PWM 方式下不用,可设为 0; SM77.30
时间基准(分辨率)选择1μs; SM77.41 更新方法为同步更新; SM77.50 是 PTO 方式的参数,在 PWM 方式下不用,可设为 0; SM77.61 模式选择为 PWM; SM77.71 PWM 允许; 第 2 句 设定 PWM 的周期值为 1000(μs); 第 3 句 设定 PWM 的脉冲宽度为 500(μs); 第 4 句 用 PLS 指令启动 PWM 输出一个脉冲输出到 Q0.1变频器给定脉冲,脉冲的周期是 1000μs,占空比是 50。
N7 只完成了变频器手动操作时的速度给定,但电梯的运行还
需要一个启动信号。
这段程序是控制电梯变频器在手动运行(调试
状态下)时
的启动信号,
逻辑是:在手动运行模式下,按下手动上/下行按钮时,电梯上行或下行,在松开按钮或碰到限位开关(上下基准限位和上下限位)时,停止运行。
这段程序是控制电梯在手动运行(调试状态下)时
的开门和关门动作,逻辑是:在手动运行模式下,按下手动开门按钮时,电梯开门,这是带保持回路的按钮,电梯开门信号接通后,信号由轿厢安全开关保持,直到碰到开门限位(开到最大位)或者碰到轿厢安全开关;按下手动关门按钮时,关门信号接通并保持,直到碰到关门限位(关到位); 除了系统调试外,一般情况下,电梯应
运行在自动方式下,即按照真正的电梯逻辑运行,所以在系统上电时,要
进入自动方式,同时手动取消也可进入自动。
在手动方式下,程序跳转到
最后,跳过电梯自动运行程序。
这段程序用来
判断和显示楼层,首先要明确
几个概念:A、楼层高度是以编码器的脉冲数计量的,电梯在上下运行中,旋转编码器随着 电梯
电机一道旋转,
产生一个脉冲序列,脉冲的数量直接反应了电梯的运行 距离,如果电梯从一楼运行到二楼产
生的脉冲数为 700,那么楼层的高度就 是 700。
B、 楼层下平层 就是电梯在各楼层正常停稳
后的高度,如电梯正常停在地一 层,此时旋转编码器的数值就是一层下平层的值。
C、 楼层范围 楼层的半高度;各层的楼层范围等于平层高度加上半层楼的高 度。
电梯运行到某一楼层的
范围之内,相应楼层的指示灯亮。
这里要注
意的是楼层越高, 旋转编码器的数值越大,这
一点对于
理解后面的程序至关重要。
下面的 N13-N18 都是楼层显示的程序。
楼层的
显示是以二进制编码的方式实现,如 101 表示楼层为 5,在程序中,电梯的楼层表示为 1-6 层,这是为了避免 0 层显示和 PLC 无输出分不清的情况, 以 N13 为例:HC1 是高速计数器 HSC1 的
当前值,是旋转编码器反馈来的电梯高度,如果高度小于五层楼层范围(相当于上行到“四层半”的高度,因为楼层越高,编码器的值越小)将显示驱动分别设置成如下值: Q4.00 Q4.11 Q4.21 Q4.30 表示为二进制数就是 0110十进制数 6; 这四个输出都接到数码管的
驱动电
路上,用数码管显示楼层;同时也以字节(QB4)的方式送到 S7-400 PLC 中供计算机和触摸屏使用。
自动运行时的 PWM 输出设定与上面介绍过的 N7 方法一样。
这里设定的是电梯复位时的速度。
电梯在每次上电时都有一个复位动作(自动
调整),下行到基准位,这是为了避免旋转编码器产生的累计误差,基准位是由行程开关(下行基准限位开关)决定的。
设定电梯正常运行时的速度,与 N19
方法相同。
在正常运行时(不在复位状态),将发出正常运行速
度的脉冲(再次提醒:发出脉冲不等于运行,只表示变频器有给定信号,还需要运行信号,电机才能运行)。
到达基准位置后,电梯可以正常运行了,首先就是将电梯位置的高速计数器初始化,方法同 N3,但这里不同的是将计数
器设定值(SMD52)设到
2000000,仅仅是为了让实际检测的值永远达不到设定值,这样可以避免产生过限的标志位。