PLC—200串行口在灌装机称重系统中的应用
2014-09-26常源
常源
摘要:电子称计量是目前无菌灌装机普遍采用的计量方式,如何将灌装量准确实时地读入PLC可以采用多种方法。本文主要利用S7-200的自由口与称重仪表或者带通讯口变送器之间的协议,通过编程实现两者之间的数据传输。利用自由口通讯在节约成本的同时,可以获取稳定准确的重量数据,大大的提升了灌装精度。
关键词:PLC 自由口通讯 灌装机 称重系统
中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2014)06-0010-02
1 前言
西门子S7-200系列PLC是主要面向小型设备的控制系统,它成本低,接口丰富,模块扩展性强,是目前包装行业普遍采用的控制系统。饮料包装行业,对重量的要求是非常精确的,密度单一,流动性较好的物料,通常采用流量计来计量,精度可以达到标准。但根据市场需要,含有大颗粒、囊包或者密度粘度不均匀的饮料更能满足营养和口味的需求,此类物料由于其质量或者电导率不均匀,采用流量计计量,误差较大。利用电子称计量可以有效的避免以上缺点,简单直观的反映出灌装重量,大大提高了灌装精度。
过去,通常采用称重仪表的IO信号控制灌装量,但是这种计量方法无法将实际灌装重量引入PLC,不能方便分析实时重量,回馈控制灌装机构。另一种方法,经过仪表的二次变换,输出4-20Ma电流,采集进PLC,采用这种方式,经过变换的重量值精度没有仪表高,也会带来仪表和PLC重量值不一致的误差。随着PLC和仪表通讯技术的日渐成熟,利用两者之间的数据传输,可方便地实现读写、标定、记录等功能,使灌装量控制更加灵活,有效。
2 S7-200的串行通讯技术
S7-200PLC一般具有一到两个RS485通讯接口,并且通信口各自独立,每个通信口都有自己的网络地址、通信速率等参数设置。灌装机称重系统中采用的是S7-200中的CPU226,此CPU有PORT0、PORT1两个通信接口,可根据需要自由定义为PPI协议和自由口通讯模式。
2.1 通讯协议及自由口介绍
定义为自由口模式后,通过编写程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制,速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。S7-200CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式一般包括:
一个起始位;
7或8位字符(数据字节);
一个奇/偶校验位;
一个停止位;
凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。
2.2 控制字介绍
S7-200是通过不同的特殊寄存器来控制自由口的通讯方式和检测读写信息指令的状态。SMB30、SMB130分别用于对PORT0、PORT1的初始化,通过定义这两个特出寄存器,可以控制自由口的协议、波特率、每个字符的数据位和校验方式,定义后的通讯方式要和称重仪表的通讯方式一致。SMB86到SMB94、SMB186到SMB194状态字主要检测通讯过程,比如通讯超时、校验错误或者定义起始与结束字符。
3 灌装机称重系统
3.1 称重原理
灌装机靠灌装阀来控制灌装量的多少,当灌装量到达设定值时,PLC控制灌装阀关闭。为精确达到控制灌装重量的大小,灌装阀可以根据流量大小,分几段减小进入灌装管内的流量,防止流量过大,在关闭物料阀的瞬间,造成冲击,此时进入的多余物料是不可控制的,会引起物料重量不规律的波动。
3.2 仪表通讯协议介绍
灌装机采用的是杰曼GM8806配料控制器,控制器具有一个RS485串行口,通讯方式采用应答方式,即通过PLC发出命令帧给仪表,仪表接收到给命令帧后向PLC发出命令相应帧的方法实现通讯。字节格式为:起始位—1bit,字符长—7bit,停止位—1bit,代码:ASCⅡ,校验方式:偶校验。
GM8806提供比较全面的读写命令,比如:读取仪表状态、读取配方参数、写工作参数、标定等。CPU226主要是读取仪表的当前值,所以就以读取仪表当前状态为例,发送的数据格式为:
STX—起始符(02H)
地址—称号(可轮流读取多个称的当前值)
R—(52H)
S—(53H)
CRC—校验和
CR—(0DH)回车标志
LF—(OAH)结束标志
如果读取1号称的当前状态时,发送命令的数据格式位:023031525336340D0A。
仪表应答后返回数据格式为:
DDDDDD—仪表显示值,6位。状态—稳定(4DH),不稳定(53H),溢出(4FH)
通过编程把6位当前仪表显示值读取到PLC中,运算转换成带有重量单位的当前重量值。
4 硬件连接及程序设计
4.1 硬件连接
PLC与GM8806通过带屏蔽的双绞线连接,自由口通过西门子专用的RS485接头进行连接,采用质量较好的传输线,能更好的提高信号的抗干扰能力,增加传输距离,当传输速率小于187.5kbps波特率时,可以保证50米以内的有效传输距离,用户也可以采用RS-485中继器延长通信距离。
4.2 中断介绍
CPU通信的核心指令是发送(XMT)和接收(RCV)指令,在自由口通信中常用的中断有“接收指令结束中断”、“发送指令结束中断”。通讯协议位于自由端口模式时完全受梯形图程序的控制,在编程的时候可以很方便地使用这两个命令。发送和接收指令可以允许传送最多长达255个字符的数字缓冲区,并且在发送和接收完毕后会产生一个中断,在S7-200中,为端口1分配的中断事件为26和24。数据的接收开始和终止分别采用起始字符、结束字符检测,当SMB188接收到和仪表指定的起始字符后,数据缓冲区将接收以起始字符为第一个字符的数据,在此期间,"接收"指令会检查接收的每个字符,查看是否与结束字符相符,收到结束字符时,结束字符被写入信息缓冲区中,接收终止。在GM8806通信协议中,起始字符被指定为02H,结束字符被指定为0AH。
4.3 程序设计
程序主要由主程序、发送中断程序和接收中断程序组成,主程序主要完成对端口1的初始化、调用中断程序和数据处理任务。
LD SM0.1 // 首次扫描时,
MOVB 16#69 SMB130 // 初始化自由端口:选择9600波特,选择8个数据位,奇校验方式。
MOVB 16#E0 SMB187 // 初始化RCV信息控制字节:RCV被启用,检测到信息字符结束
MOVB 16#0A SMB189 // 将信息字符结束设为hex OA(换行符)。
MOVW +5 SMW190 // 将空闲行超时设为5毫秒。
MOVB 100 SMB194 // 将最大字符数设为100。
ATCH INT_0 24 // 将中断附加在接收完成事件上。
ATCH INT_2 26 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB100 ,1// 为端口1在VB100位置启用带缓冲区的接收区域
XMT VB500, 1// 为端口1在VB500位置启用带缓冲区的发送区域
LD SM0.0
ATH VB112, VB0, 4
MOVW VW0, VW10
BCDI VW10
ITD VW10, VD20
DTR VD20, VD30
MOVR VD30, VD40
/R 10.0, VD40// 数据转换,将6位ASCⅡ码转换为以Kg位单位的十进制。
在接收完数据后,设定了40ms的时间间隔后在重新向仪表发送读取命令,防止仪表同时接受到读取和发送命令,引起错误。经GM8806返回的数据,实时重量以ASCⅡ码的格式存储在VB109-VB118的地址中,经过数据变换后,就可得到和仪表显示一致的重量值。
5 结语
电子称计量精度高,灌装量误差不依赖温度、流量等其他工艺参数,是目前灌装机主要采用的计量方式。通过PLC-200自由口和称重仪表的通讯,将重量数据读入PLC,消除了采用变送器所带来的误差,同时将灌装量读入PLC,方便编程,可以实现更复杂的控制功能。自由口的通讯也可方便的与打印机、变频器、智能仪表等工业仪器通讯。S7-200CPU在国内得到广泛应用,依靠通讯连传输数据打破了以往单一的I\O,4-20Ma的传统模式,让仪器仪表之间连接方式更加标准化。
参考文献
[1]Siemens AG.S7-200.LOGO.SITOP参考[K].2008.
[2]Siemens AG.S7-200可编程控制器系统手册[K].2007.
[3]赵金荣,叶真主编.可编程序控制器原理及应用[M].上海:上海应用技术学院,2003.
[4]刘华波,等主编.西门子S7-200 PLC编程及应用案例精选[M].北京:机械工业出版社,2009.
[5]姜建芳.西门子S7-200PLC工程应用技术教程[M].2010.
4.3 程序设计
程序主要由主程序、发送中断程序和接收中断程序组成,主程序主要完成对端口1的初始化、调用中断程序和数据处理任务。
LD SM0.1 // 首次扫描时,
MOVB 16#69 SMB130 // 初始化自由端口:选择9600波特,选择8个数据位,奇校验方式。
MOVB 16#E0 SMB187 // 初始化RCV信息控制字节:RCV被启用,检测到信息字符结束
MOVB 16#0A SMB189 // 将信息字符结束设为hex OA(换行符)。
MOVW +5 SMW190 // 将空闲行超时设为5毫秒。
MOVB 100 SMB194 // 将最大字符数设为100。
ATCH INT_0 24 // 将中断附加在接收完成事件上。
ATCH INT_2 26 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB100 ,1// 为端口1在VB100位置启用带缓冲区的接收区域
XMT VB500, 1// 为端口1在VB500位置启用带缓冲区的发送区域
LD SM0.0
ATH VB112, VB0, 4
MOVW VW0, VW10
BCDI VW10
ITD VW10, VD20
DTR VD20, VD30
MOVR VD30, VD40
/R 10.0, VD40// 数据转换,将6位ASCⅡ码转换为以Kg位单位的十进制。
在接收完数据后,设定了40ms的时间间隔后在重新向仪表发送读取命令,防止仪表同时接受到读取和发送命令,引起错误。经GM8806返回的数据,实时重量以ASCⅡ码的格式存储在VB109-VB118的地址中,经过数据变换后,就可得到和仪表显示一致的重量值。
5 结语
电子称计量精度高,灌装量误差不依赖温度、流量等其他工艺参数,是目前灌装机主要采用的计量方式。通过PLC-200自由口和称重仪表的通讯,将重量数据读入PLC,消除了采用变送器所带来的误差,同时将灌装量读入PLC,方便编程,可以实现更复杂的控制功能。自由口的通讯也可方便的与打印机、变频器、智能仪表等工业仪器通讯。S7-200CPU在国内得到广泛应用,依靠通讯连传输数据打破了以往单一的I\O,4-20Ma的传统模式,让仪器仪表之间连接方式更加标准化。
参考文献
[1]Siemens AG.S7-200.LOGO.SITOP参考[K].2008.
[2]Siemens AG.S7-200可编程控制器系统手册[K].2007.
[3]赵金荣,叶真主编.可编程序控制器原理及应用[M].上海:上海应用技术学院,2003.
[4]刘华波,等主编.西门子S7-200 PLC编程及应用案例精选[M].北京:机械工业出版社,2009.
[5]姜建芳.西门子S7-200PLC工程应用技术教程[M].2010.
4.3 程序设计
程序主要由主程序、发送中断程序和接收中断程序组成,主程序主要完成对端口1的初始化、调用中断程序和数据处理任务。
LD SM0.1 // 首次扫描时,
MOVB 16#69 SMB130 // 初始化自由端口:选择9600波特,选择8个数据位,奇校验方式。
MOVB 16#E0 SMB187 // 初始化RCV信息控制字节:RCV被启用,检测到信息字符结束
MOVB 16#0A SMB189 // 将信息字符结束设为hex OA(换行符)。
MOVW +5 SMW190 // 将空闲行超时设为5毫秒。
MOVB 100 SMB194 // 将最大字符数设为100。
ATCH INT_0 24 // 将中断附加在接收完成事件上。
ATCH INT_2 26 // 将中断2附加在传送完成事件上。
ENI // 启用用户中断
RCV VB100 ,1// 为端口1在VB100位置启用带缓冲区的接收区域
XMT VB500, 1// 为端口1在VB500位置启用带缓冲区的发送区域
LD SM0.0
ATH VB112, VB0, 4
MOVW VW0, VW10
BCDI VW10
ITD VW10, VD20
DTR VD20, VD30
MOVR VD30, VD40
/R 10.0, VD40// 数据转换,将6位ASCⅡ码转换为以Kg位单位的十进制。
在接收完数据后,设定了40ms的时间间隔后在重新向仪表发送读取命令,防止仪表同时接受到读取和发送命令,引起错误。经GM8806返回的数据,实时重量以ASCⅡ码的格式存储在VB109-VB118的地址中,经过数据变换后,就可得到和仪表显示一致的重量值。
5 结语
电子称计量精度高,灌装量误差不依赖温度、流量等其他工艺参数,是目前灌装机主要采用的计量方式。通过PLC-200自由口和称重仪表的通讯,将重量数据读入PLC,消除了采用变送器所带来的误差,同时将灌装量读入PLC,方便编程,可以实现更复杂的控制功能。自由口的通讯也可方便的与打印机、变频器、智能仪表等工业仪器通讯。S7-200CPU在国内得到广泛应用,依靠通讯连传输数据打破了以往单一的I\O,4-20Ma的传统模式,让仪器仪表之间连接方式更加标准化。
参考文献
[1]Siemens AG.S7-200.LOGO.SITOP参考[K].2008.
[2]Siemens AG.S7-200可编程控制器系统手册[K].2007.
[3]赵金荣,叶真主编.可编程序控制器原理及应用[M].上海:上海应用技术学院,2003.
[4]刘华波,等主编.西门子S7-200 PLC编程及应用案例精选[M].北京:机械工业出版社,2009.
[5]姜建芳.西门子S7-200PLC工程应用技术教程[M].2010.