模拟电梯PLC程序说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟电梯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中,各个定时器的时间分辨率是不一样的,同
分辨率最大值定时器号
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-T255
2、通讯设置
在主画面上可以
打开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.5=1 向HSC1写新的预置值;
SMB47.6=1 向HSC1写新的初始值;
SMB47.7=1 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到
4,294,967,295)和周期(以微秒或毫秒为单位)。
脉冲序列输出(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.0=1 更新周期值,因为变频器的速度要求是可变的,在PWM方式下,PWM的脉冲频率就是变频器的给定速度;
SM77.1=1 更新脉冲宽度值;
SM77.2=0 是PTO方式的参数,在PWM方式下不用,可设为0;
SM77.3=0 时间基准(分辨率)选择1μs;
SM77.4=1 更新方法为同步更新;
SM77.5=0 是PTO方式的参数,在PWM方式下不用,可设为0;
SM77.6=1 模式选择为PWM;
SM77.7=1 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.0=0
Q4.1=1
Q4.2=1
Q4.3=0
表示为二进制数就是0110(十进制数6);
这四个输出都接到数码管的驱动电路上,用数码管显示楼层;同时也以字节(QB4)的方式送到S7-400 PLC中供计算机和触摸屏使用。
自动运行时的PWM输出设定与上面介绍过的N7方法一样。
这里设定的是电梯复位时的速度。
电梯在每次上电时都有一个复位动作(自动调整),下行到基准位,这是为了避免旋转编码器产生的累计误差,基准位是由行程开关(下行基准限位开关)决定的。
设定电梯正常运行时的速度,与N19方法相同。
在正常运行时(不在复位状态),将发出正常运行速度的脉冲(再次提醒:发出脉冲不等于运行,只表示变频器有给定信号,还需要运行信号,电机才能运行)。
到达基准位置后,电梯可以正常运行了,首先就是将电梯位置的高速计数器初始化,方法同N3,但这里不同的是将计数器设定值(SMD52)设到2000000,仅仅是为了让实际检测的值永远达不到设定值,这样可以避免产生过限的标志位。
电梯到达某一楼层的设定高度就叫“平层”,但平层并不意味着反馈高度绝对等于设定高度,因为电机的惯性作用,这也是根本达不到的,程序中使用的是一个高度范围,对底层来说,高度在下平层和上平层(300-340)之间都是“平层”。
因为楼层的高度是固定的(750),所以1到5层的平层范围都是在底层平层范围的基础上推算出来的。
在每层的平层范围确定后,程序将根据旋转编码器的数值(HC1),判断各楼层的是否平层,如果电梯的高度在上平层和下平层高度之间,相应楼层的平层信号设为1,否则为0。
程序如下:
如果电梯在找原点,到此程序结束。
这段程序的功能是锁存电梯内按钮信号,并输出按钮指示灯信号。
以四层内呼指示为例,分析这段程序的逻辑:
当电梯不在四层时(“四层平层信号”=0),在电梯内按下“4”(“四楼内呼按钮”),或是在上位机上按“4”(“四层内呼按钮REMOTE”),按钮“4”指示灯(“四楼内呼指示”)亮;当电梯停在四楼(四楼平层信号=1)并且开门时(“开门驱动”=1)时,按钮灯灭。
其它楼层的控制原理是一样的。
以下程序从N32到N41都是处理电梯门外的按钮及按钮指示信号。
同样以四楼为例说明外部按钮的逻辑:
在电梯门外按外部向上按钮(“四楼外呼上”=1)或在上位机上按向上按钮(“四楼外呼上REMOTE”=1)后,按钮指示灯亮(“四层上指示”=1);
当电梯往上运行(“四层往上运行”=1或“电梯上行指示”=1),到达四楼(“四楼平层信号“=1)并且电梯开门时(“开门驱动“=1),按钮指示灯灭(“四层上指示”=0)。
其它楼层的逻辑一样。
要特别注意的是:“一层往下运行”接通时,并不表示电梯立即往下运行,而是“可以”往下运行,也就是说,当电梯在从B楼往1楼运行过程中,如果1楼上方没有人呼叫电梯,那么在电梯到达1楼后,在B楼呼叫电梯,电梯立即下行,否则电梯还会继续上行。
电梯不是简单地按呼叫的时间先后响应的,而是要判断是否“顺路”。
N43-N49都是同样的道理。
正常运行时,只有在两中情况下,打开电梯门:电梯运行到位或电梯内手动开门。
首先分析到位时开门的逻辑。
以第四层上行到位为例:当有人在厢内按“4”需要送上四楼,或在四楼门外呼叫电梯上来接后(“四楼上指示”=1),到达四楼(“四楼平层信号”=1)时开门;同样情况下,电梯下行到四楼时,门也打开当电梯停在某个楼层时(“电梯上行驱动”=0并且“电梯下行驱动”=0)用电梯的按钮可以开门,“轿厢安全开关”=0时,必须开门,防止夹伤乘客。
在三种情况下,开门驱动被设为0:
A、按下关门按钮(包括上位机上的按钮);
B、关门驱动为1时(开门/关门是一台可逆电机执行的,不允许同时接通正转信
号和反向信号);
C、门开到位时。
在两种情况下执行关门动作:
A、关门按钮(包括上位机上的按钮);
B、开门到位延时5秒后。
在四种情况下复位关门动作:
A、开门的瞬间;
B、开门按钮(包括上位机上的按钮);
C、安全开关(防止夹伤乘客);
D、门关到位。
电梯在一楼时,判断是否应该上行。
B层没有定义上行趋势标志,是因为只能向上,不需要定义;五层没有定义是因为根本就没有向上运行。
在两种情况下电梯的方向设为向上:
A、各层设定的方向是向上时,
B、电梯停在基准位或B楼时(不可能再向下了);
三种情况下清除电梯上行趋势:
A、电梯下行到位;
B、电梯到达五层
C、电梯到达上基准位或上限位。
N61到N64判断各楼层的下行趋势,说明见段标题。
五层没有定义下行趋势标志,是因为只能向下,不需要定义;B层没有定义是因为根本就没有向下运行。
在两种情况下电梯的方向设为向下:
A、各层设定的方向是向上时,
B、电梯停在上限基准位或五楼时(不可能再向上了)
三种情况下清除电梯下行趋势:
D、电梯上行到位;
E、电梯到达B层
F、电梯到达下基准位或下限位。
该段程序是控制电梯上行和下行指示灯。
电梯电机上行启动必须满足下列条件:
A、门关到位;
B、有电梯上行指示(由电梯内、外的呼叫按钮产生);
C、没有开门动作(门关到位只能表示门在关的位置,不能表示门是否正在
开);
D、电梯不在下行;
电梯电机上行在下列条件下停止:
A、电梯到位后开门时;
B、电梯下行时;
C、电梯下行指示(由电梯内、外的呼叫按钮产生);
D、到了安全限位(基准限位和上限位);
电梯下行驱动的控制逻辑和上行驱动是一样的,只是运行方向不同而已。
电梯的速度不是恒定的,在电梯刚启动时,速度是慢慢加上去的,N72在电机启动的瞬间设置加速标志位,即开始加速;N73 在电梯停止或开始减速时(接近平层高度)清除加速标志。
N74产生一周期为4毫秒的方波信号,PLC上电时,T32触点不通,接通T32线圈;4MS后,T32线圈接通,T32触点也随之接通,T32线圈自动断开,开始新一轮循环。
考虑到PLC程序扫描时间,实际周期略大于4MS。
N75 在加速标志位为1时,每4MS给输出的速度加3,直至速度达到800。
第1句是设定每个楼层的减速距离(300);
第2句和第3句是计算底层的
基准值:(上平层高度+下平层
高度)/2;在上下平层之间,
产生电梯平层信号(电梯到位
信号);其它各楼层的基准值
是根据底层的基准值和楼层。