西门子6ES7223-1PH22-0XA8产品型号
1、引 言
可编程控制器(PLC)由于其结构紧凑、可靠性高、编程简单、指令强大、灵活性强、能适用于比较恶劣环境等诸多优点,现已在工业控制领域得到广泛应用。现普遍采用触摸屏加plc的方法来监控设备,但触摸屏视角窄,不适应恶劣环境,且数据存储容量有限,不易实现大规模网络互联。因此我们采用plc与计算机通讯的方式实现实时监控,克服了触摸屏的缺点。
2、s7-200cpu自由口通讯方式的应用
的plc很多,如西门子、欧姆龙、松下、三菱等等,本人仅以西门子s7-200小型可编程控制器的cpu22×系列为例,介绍plc在计算机网络中与计算机通讯的功能。
s7-200cpu支持多样的通讯功能,根据所使用的s7-200cpu,其网络可以支持一个或多个以下协议:
点到点(point-to-point)接口(ppi)
多点接口(multi-point)(mpi)
profibus
用户定义协议(自由口)
自由口通讯是通过用户程序可以控制s7-200cpu通讯口的操作模式。利用自由口模式,可以实现用户定义的通讯协议连接多种智能设备。通过使用接收中断、发送中断、发送指令和接收指令,用户程序控制通讯口操作。在自由口通讯模式下,通讯协议完全由用户程序控制。通过smb30(口0)允许自由口模式,而且只有在cpu处于run模式时才能允许。当cpu出于stop模式时,自由口通讯停止,通讯口转换成正常的ppi协议操作。
近年来,随着我国铁路运输环境的改善,列车速度越来越高,势必对铁道车辆提出较高的要求,其表现在对列车的舒适性和运行可靠性、安全性的要求提高,因此车辆上设备的自动化程度越来越高。自动化程度的提高,带动了网络技术在列车控制和监控上的应用。车辆网络控制、监控简图如图1所示。
整列车设有车辆级计算机,每个车厢设有本车计算机,车辆级计算机与各个本车计算机组成车辆的主网,本车计算机与本车厢内的各个设备间组成子网。plc由于其自身的优点,作为控制核心在车辆上的多种设备中得以应用,例如列车自动门的控制、列车空调机的控制等,使其可以作为整个列车网络系统中的一个节点。
3、通讯协议
siemenss7-200系列plc可以采用用户定义通讯协议(自由口)模式实现计算机与plc、plc与plc的通讯。笔者所描述的例子中,虽然车辆计算机系统和车辆上的其它设备分别是多个设备供应商的产品,但是只要制定好通讯协议,就能满足相互通讯的要求。s7-200系列的plc正是由于其自由口通讯是通过用户程序控制cpu串行通讯口的操作模式,所以可以方便地与车辆计算机通讯。
计算机(主站)每隔100ms查询plc(从站)一次,主站发出从站动作控制命令给从站,从站收到命令后发给主站应答帧,从站接收到主站发送来的一帧数据,计算出其校验码fcs,与接收到的一帧数据中的fcs比较,检查是否有数据错误。如果有数据有误,从站发送信息给主站,请求重发。
·字符结构:每个字符由11位构成,奇偶校验位采用奇校验方式。
起始位:1位;
数据: 8位 d7…d0;
奇偶校验位:1位;
停止位:1位。
·传输数据帧格式
byte(0)…byte(n)fcs
byte(0)…byte(n)为字符串;
fcs为异或校验码,是发送的所有数据字节和地址字节之异或值。
·主站命令帧结构
从站地址从站地址补码控制字节命令字节fcs
·从站应答帧结构
从站地址从站地址补码控制字节应答字节fcs
4、通讯口初始化
plc内部特殊存储器位smb30和smb130分别配置通讯端口0和1,为自由端口通讯选择波特率、奇偶校验和数据位数。自由端口的控制字节描述如下所示。
例如:在通讯协议中规定奇偶校验为奇校验、每个字符的数据为8位、波特率为19200、自由口协议,采用通讯端口0,则在plc初始化程序中将smb30赋值为0c5h。
例://串口初始化
…
network7
ldsm0.0
movb16#c5,smb30//波特率为19200奇校验//1起始位1停止位8数据位
eni//允许中断
movb2,smb34
movb20,smb35
atchint_0,8
…
5、PLC实时数据处理
由于s7-200系列plc在自由口模式下,通讯协议完全由梯形图程序或stl编辑器控制,程序可以使用接收中断、发送中断、发送指令和接收指令来控制通讯操作。cpu连续扫描用户程序,执行用户任务。plc在程序执行过程中,基于稳定、快速灵活等方面考虑,cpu每个扫描周期都通过输入输出映像寄存器来执行实际输入输出操作,即读实际输入点值到映像寄存器、写映像寄存器值到实际输出点。由于在中断中不能顺利进行数据读写操作,因此,可通过编程,利用plc循环扫描执行程序的特点,使得在程序扫描期间实现数据存储区与输入输出映像寄存器区交换数据。
在本实例中,plc上电初始化后转入接收字符中断,当上位机发出查询命令后,plc判断所发命令的地址和地址补码是否正确;如果正确判断上位机是向plc发送命令还是查询plc状态;如果执行命令则plc转入主程序执行相关命令,如果查询plc状态则将协议定义的信息发送给上位机,上位机收到信息后发送应答帧给plc。
例:interrupt0//接收开始
network1
ldnsm3.0
ab=smb2,vb0
movw+0,ac0
movd&vb600,vd638
movbsmb2,*vd638
xorwsmw1,ac0
movbac0,vb300
atchint_1,8
atchint_6,11
creti
network2
ldsm0.0
dtch8
atchint_6,10
interrupt1//接收地址补码
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
xorwsmw1,ac0
network2
ldsm0.0
atchint_6,10
interrupt2//接收命令后判断
…
network3//发送信息
ldw=ac2,+0
ab=vb301,vb604
ab=vb603,16#00
atchint_4,10
dtch11
creti
network4
ldsm0.0
wdr
…
network7
ldsm0.0
sm31.0,1
dtch11
atchint_5,10
interrupt3//接收应答字节
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
incdvd638
xorwsmw1,ac0
decwac2
network2
ldw=ac2,16#0000
movwac0,vw300
network3
ldsm0.0
dtch8
atchint_6,10
interrupt4//发送信息码
…
network6
ldsm0.0
movwac0,vw105
xmtvb100,0
atchint_6,9
…
interrupt5//发送应答帜
…
network9
ldsm0.0
movwac0,vw105
xmtvb100,0
rm31.0,1
atchint_6,9
…
interrupt6//转入接受中断
network1
ldsm0.0
dtch9
dtch10
dtch11
atchint_0,8
6、计算机实时数据处理
计算机程序由车辆级网络供应商提供,根据双方制定的通讯协议,通常采用vb或vc编写,在此不做详细描述。
7、结束语
从以上叙述可以看到,由车辆计算机与plc(或其它智能可编程设备)组建的车辆级实时监控系统关键在于解决计算机与plc的实时通讯、plc对车上设备状态实时监控的问题。通过这种方式组建的车辆实时监控系统,只是在原有的设备控制器软件内增加了通讯程序,所以并没有增加设备供应商的成本,因此这种监控系统的开发成本低,而且实时性好、操作简单、通用性强。再利用计算机易组网的功能,实现了整列车的实时监控,大大提供了列车行驶中的可靠性和安全性,因此这种网络系统在旅客列车、特别是高速列车上已普遍使用。
利用西门子PLC输出的模拟量、伺服控制器完成了对伺服电机转速的控制。提高了系统控制的可靠性和jingque度。满足了工业现场的需要。
1.引言
伺服电机在自动控制系统中用作执行元件,它将接收到的控制信号转换为轴的角位移或角速度输出。通常的控制方式有三种:
①通讯方式,利用RS232或RS485方式与上位机进行通讯,实现控制;
②模拟量控制方式,利用模拟量的大小和极性来控制电机的转速和方向;
③差分信号控制方式,利用差分信号的频率来控制电机速度。
简单、方便的实现对伺服电机转速的jingque控制是工业控制领域内的一个期望目标,本文主要研究如何利用PLC输出的模拟量实现对伺服电机的速度较为的控制。
2.控制系统电路
控制装置选用西门子S7-200系列PLC CPU224XPCN,这种型号的PLC除了带有输入输出点外。还有1个模拟量输入点和1个模拟量输出点,这一型号PLC所具有的模拟量模块,能够满足控制伺服电机的需要。触摸屏选用西门子触摸屏,型号为TP177B。
具体控制方案如图l所示,触摸屏是人机对话接口,初的指令信息要从这里输入。输入的信息通过通讯端口传送到PLC。经运算后,PLC输出模拟量,并连接到伺服控制器的模拟量输入端口。伺服控制器对接收到的模拟量进行内部运算,而后驱动伺服电机达到相应的转速。伺服电机通过测速元件将转速信息反馈到伺服控制器,形成闭环系统,实现转速稳定的效果。
图1 控制方案
方案中的伺服电机,设计工作转速范围为500~6000RPM,精度要求为±3RPM。
3.控制过程
在触摸屏中设置一个对话框,可输入4位数值,然后将此对话框中的数据属性设置成对应PLC中的整形变量数据(如VW310)。目的是当在对话框中输人数值后,电机就能够达到与该数值相同的速度。
PLC输出的模拟量是0~10V,对应的整形数据是0~32000;而伺服电机的输入模拟量是0~l0V。对应的转速是0-6500 RPM。由于这些数值都是理论上的,并且终希望得到的还是输入值对应上转速即可。因此,模拟量作为中间环节仅做参考。需要重点考虑的还是输入值、整形数据和实际转速。经过直接实测,测试数据如表1所示。
表1 直接实测数值表
输入值 | 整形数值 | 实际转速 |
500 | 500 | 70 |
2000 | 2000 | 360 |
4000 | 4000 | 750 |
6000 | 6000 | 1145 |
由表1可看出,输入值和实际转速相差甚远,而唯一的办法是通过运算将输入值转换成能对应上实际转速的整形数值。但是还要首先找到高转速和低转速对应的数值。通过实验发现,对应关系如表2所示
表2 实测对应数值表
整形数值 | 实际转速 |
2711 | 500 |
30854 | 6000 |
PLC的模拟量输出和伺服电机转速输出都是线性的,可以根据表2的数据列出直线方程组,计算出输入值和整形数值之间的关系。
2711=500×a+b
30854=600×a+b
解得:a=5117;b=152
设实际转速为x,整形数值为y;那么关系方程为:
y=5117×x+152
通过PLC。实现则需妻用到数字运算指令,具体如图2所示
图2数字运算指令实现对应关系
运算后,将数据直接传送到模拟量输出口就完成了转换工作(由于输出口不接受双字数据;所以仅传字数据,VB2232即可)。如图3所示
图3模拟量输出口传送指令
这样.就基本上完成了从对话框输入速度值,经过PLC运算后输出模拟量。伺服控制器接收到模拟量驱动伺服电机,伺服电机的转速等于输入速度值的过程。通过经过实际检验,测得输入值、整形数值、实际转速如表3。
表3 运算后的实测数值表
输入值 | 运算后数值 | 实际转速 |
500 | 2711 | 500 |
1000 | 5269 | 999 |
2000 | 10386 | 1998 |
3000 | 15503 | 3000 |
4000 | 20620 | 4002 |
5000 | 25737 | 5001 |
6000 | 30854 | 6000 |
4.结束语
本文提出了一种利用西门子200系列PLC所配备的模拟量输出模块,控制伺服电机的方法,方法简单,易于实现,且能够满足转速精度为±3 RPM的工作要求。