湖州西门子PLC总代理商
1 引言
烟草工业生产中,烟丝的配比工艺段是关键的工艺环节之一。烟丝配比是指按生产中叶丝的流量为基数,将梗丝、膨胀烟丝、薄片烟丝以及残丝中的几种按各自的设定比例和叶丝进行实时均匀的掺配。配比型电子皮带秤是完成此项工艺段加工过程的核心设备,而影响其精度的关键因素之一就是称重信号的采集精度及稳定性,它将直接关系到烟丝配比的质量,从而也在很大程度上决定着后续烟支成品的内在吸味质量的稳定性和均衡性。
2 配比型电子皮带秤的工作原理
电子皮带秤按其工作用途分类,一般分为计量型、控制型、配比型三种类型。
计量型—计量物料的瞬时流量及累计重量;控制型—均衡地控制物料重量,使物料按设定流量通过;配比型—实现叶丝、梗丝、薄片丝、残丝等的设定配比;配比型电子皮带秤称重系统由多台称量装置组成并集中控制,集称量、配比于一体,具有交互式多任务、多参数计量功能,能够对通过该配比系统的多种烟丝进行动态累计称量、流量控制,并按一定比例进行掺配。
2.1 电子皮带秤工作原理
各种烟丝通过限量管(或直接下落)到称量装置的皮带上,随皮带向前运转,当其通过称量装置有效称量段时,其重量通过输送机皮带和计量托辊加到荷重传感器上,传感器感受负荷产生的信号直接送入称重模块siwarexu中,经称重模块siwar -exu采集并转换的数据直接经s7系统总线送入plc数据采集系统,检测称量段上的单位长度重量q(kg/m),测速装置检测出皮带运行速度v(m/s),经过plc运算得出瞬时流量和累积量并进行显示。
瞬时流量为:q=3600×q×v(kg/h)
累积量为:g=∫q×v×d t(kg)
其中:q=w×h×p s
w—秤体上物料宽度(m),与限量管宽度有关。
h—秤体上物料厚度(m),与限量管开口高度有关。
ps—物料比重(kg/m3)
v—带速(m/s)
2.2 电子皮带秤配比工作原理
配比型电子皮带秤控制系统以通过主称量装置的物料瞬时流量为基准,与掺配称量装置相对应的设定掺配比例运算后,作为该掺配装置的设定流量,将测得的通过该掺配装置的瞬时流量与设定流量信号进行比较,利用plc进行pid控制运算,输出调速信号调节电机的转速,从而改变皮带速度,以达到自动调整掺配流量的目的。
3 西门子模块配比称重系统
3.1 电子皮带秤控制系统组成
配比型电子皮带秤主控柜部件采用基于德国西门子公司西门子称重模块(siwarex u)的s7-300系列plc技术平台,其电控系统功能如图1所示。
图1 电控系统功能框图
s7-300plc由cpu317-2pn/dp、高速计数模块fm350-2、称重模块siwarexu、数字量输入输出模块和电源模块组成。cpu317-2pn/dp主要用于主过程控制及profinet通讯。包含数字量输入点和数字量输出点、模拟量输入和模拟量输出回路,其中数字输入点和数字输出点承担着整个电子皮带秤的数字量输入和输出控制以及提供与外部联机时所需的输入和输出信号;模拟量输入用于4-20ma流量外设定采样;模拟量输出用于变频器控制及瞬时流量4-20ma输出。称重传感器的重量信号由siwarexu采样,速度编码器的编码脉冲信号送入plc的高速计数器。电子皮带秤根据来自重量传感器的重量信号、来自速度编码器的速度信号及该秤的设置信号和已编制的软件程序,进行称重、流量控制、配比、通讯并送出速度控制信号,该信号送到变频调速器从而控制电机转速,带动电子皮带秤工作。控制型电子皮带秤控制单元及siwarexu电子称重模块集成实物如图2所示。
图2 控制型电子皮带秤控制单元
3.2 控制系统特点
(1)简化了荷重信号放大电路。荷重信号采集采用西门子的电子称重模块siwarexu,使来自荷重传感器的信号连线直接接入称重模块siwarexu中,减少了使用信号放大器的传统中间放大环节,使荷重信号传输的准确度更高,采样的频率更快,这就可以保证电子皮带秤的累积精度。
西门子称重模块(siwarexu)具有对传感器桥路输出信号的电源补偿,且传输距离远,能达到1000米,精度高,设计为0.05%,65000分区分辨率,控制测量次数达到50次/秒,更有数字滤波、断线监视等功能,使其更加稳定、可靠,计量精度的稳定性在较长的时间内可以得到较大限度的保证,从而大大延长了电子皮带秤的维护和标定周期。siwarexu是一个集信号放大、16位a/d转换为一体的专用称重模块,它与西门子plc的连接直接由背板总线来完成,大大地简化了荷重信号放大电路,这一系列的优势使得电子皮带秤的精度可靠性得到了更大意义上的提升,应用水平又上了一个新的台阶。
(2)计量累计误差自动追加功能。根据配比型电子皮带秤的掺配原理,瞬时掺配精度应该能够得到保证,掺配后的烟丝累计量总体累计精度随着时间的推移可能会因瞬时流量的误差、烟丝来料不稳定等各种因素超出设定比例的允许范围,我们设计了计量累计误差自动追加程序。原理是:当累计误差超过允许范围较大时在原设定比例的基础上增加较大的修正值修订设定比例,使其快速回到正常的累计误差范围;当累计误差超过允许范围较小时在原设定比例的基础上增加较小的修正值修订设定比例,使其缓慢回到正常的累计误差范围。
3.3 西门子称重模块应用经验
西门子称重模块siwarexu具有对传感器桥路输出信号的电源补偿,且传输距离远,能达到1000米,在通常使用时应尽量缩短荷重传感器与称重模块siwarexu的距离,从而尽可能地避免强干扰信号的介入。如果传输距离超过300米,尽量选择西门子订货号为7mh4702-8ag的原装传感器电缆。
4 结束语
使用电子称重模块siwarexu后,荷重信号的稳定性有了明显的提高。为使整个电子皮带秤的系统精度及稳定性会达到一个佳状态,我们在具体使用过程中,还应注意影响荷重信号稳定性的其他因素,如:秤体上的轴承润滑是否良好,皮带是否干净,秤体边缘与皮带之间是否有异物等等。这种集成化的称重方式,非常值得在行业内进行推广。
1 引言
为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx2系列plc,omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visualbasic进行编程,从而实现计算机与可编程控制器的直接控制。该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。
2 s7-200通讯指令及特殊字节
采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。
2.1 特殊标志字节
s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。smb130各位的含义如下:
pp:两位用于选择通讯的校验方式 当这两位的组合是:
00无校验 01 偶校验 10 无校验 11 奇校验
d:这一位用于选择通讯的数据位数 d=1时7个数据位,d=0时8个数据位
bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下:
000 ——38400bps
001 ——19200bps
010 ——9600bps
011 ——4800bps
100 ——2400bps
101 ——1200bps
110 —— 600 bps
111 —— 300 bps
mm: 用于通讯协议的选择,当这两位的组合是:
00 ppi从站模式 01 自由口通讯模式 10 ppi主站模式
2.2 接收信息的状态字节
s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。smb186各位的含义如下:
n=1时:表示禁止接收信息
r=1时:表示接收信息结束
e=1时:表示收到结束字符
t=1时:表示接收信息超时错误
c=1时:表示接收信息字符超长错误
p=1时:表示接收信息奇、偶校验错误
2.3 接收信息的控制字节
s7-200在自由口通讯时用于接受信息的控制字节有smb87和smb187,smb87用于s7-200的端口0的通讯,smb187用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb187为例,介绍其组成。smb187各位的含义如下:
en=0时:禁止接收信息
en=1时:允许接收信息
sc=0时:不使用起始字符开始
sc=1时:使用起始字符做为接收信息的开始
ec=0时:不使用结束字符结束
ec=1时:使用结束字符做为接收信息的结束
il=0时:不使用空闲线检测
il=1时:使用空闲线检测
c/m=0时:定时器是字符定时器
c/m=1时:定时器是信息定时器
tmr=0时:不使用超时检测
tmr=1时:使用超时线检测
bk=0时:不使用中断检测
bk=1时:使用中断检测
2.4 其它和自由口通讯有关的特殊字节(见表1)
2.5 自由口通讯的指令
(1) 发送指令xmt 其指令格式如图所示:
发送指令用于激活发送数据缓冲区tbl中的数据,数据格式如下所示,数据缓冲区中的个数据是指定要发送的数据的总字节数,大为255个,从第二个数据开始是依次要发送的数据。port指定用于发送的端口,在发送完缓冲区中的后一个数据时产生中断事件。
(2) 发送指令rcv其指令格式如图所示:
接收指令rcv用于从指定的端口接收数据,并将接收到的数据存储与其参数tbl所指定的缓冲区内,缓冲区的个字节指示接收到的字节数量,第二个字节指示接收的起始字符,后一个字节指示的是结束字符,起始字符和结束字符之间的是接收到的数据,同发送缓冲区一样,接收缓冲区的大数量也是255个字节。
(3) 与自由口通讯有关的中断(见表2)
3 plc自由口通讯的程序设计
3.1 自由口通讯的初始化子程序(见图1)
图1(a)
图1(b)
图1(c)
图1(d)
3.2 自由口通讯的发送子程序(见图2)
图2(a)
图2(b)
3.3 自由口通讯的接收程序(见图3)
图3(a)
图3(b)
3.4 自由口通讯的开始接收中断服务程序(见图4)
图4 自由口通讯的开始接收中断服务程序
3.5 自由口通讯的接收完成中断服务程序(见图5)
图5 自由口通讯的接收完成中断服务程序
4 vb中的串行口通讯组件介绍
4.1vb中串行通讯控件的引用
在vb的标准工具箱中并没有用于串行通讯的控件,在使用时需要引用,引用的方法是在vb界面中的下拉菜单中选择[工程]/部件,在出现的可选文件中选择msccomm32.ocx,选择引用后在vb的标准工具箱中就会出现vb下的串行口通讯控件。如果无法按照上述的方法在部件中成功地引用组件,也可以使用该程序中的浏览功能,到bbbbbbs/system目录下去找msccomm32.ocx,并打开该文件。
4.2 vb中串行通讯控件的属性
(1)commport:该属性用于设置vb应用程序所使用的串行口号,其设置值为1~16,对应计算机的com1~com16号端口。
(2)settings:该属性用于设置串行口的通讯参数,其格式为“bbbb,p,d,s”其中bbb为通讯的波特率,波特率范围为300~19200bps;p为奇偶校验方式,其设置方法是e代表偶校验,o代表奇校验,n代表无校验;d为通讯的数据位数,通常是8位或7位;s代表停止位,停止位的设定值有1、1.5、2。例如,setting属性的设置为,mscomm。settings=9600,n,8,1表示通讯波特率为9600,无校验,8个数据位,1个停止位。
(3)portope:在使用串行口进行通讯前必须先打开串行口,该属性用于串行口的打开与关闭,其设置值为true或false,分别代表串行口的打开与关闭。
(4)bbbbb:该属性的作用是从输入缓冲器中将数据读入到程序中,并清除缓冲区中已被读走的内容。
(5)output:该属性的作用是从程序中写数据到输出缓冲器中,写入到输出缓冲器中的内容由串口发送出去。
(6)bbbbblen:该属性指定由串行口读入的字符串长度,vb所写的程序可以使用该属性将存放在输入缓冲器中读入,但欲指定所读入的字符的长度则可以通过该属性来设置,默认值是0,在默认情况下,bbbbb指令一次读取所有输入缓冲区中的数据。
(7)rthrehold:该属性用于设置当输入缓冲器中接收到的字符数等于该属性的设定值时,引发接受事件on-comm事件。当mscomm.rthreho -ld=0时不会产生oncomm事件。
(8)inbuffercount:该属性是指已接收到的并放在输入缓冲器中等待读取的字符的数量。在使用时可把该属性设置为0用来清除输入缓冲器。
(9)bbbbbmode:该属性用于设置由bbbbb属性取回的数据的形式。该属性设置值如表3。
4.3 vb中串行通讯控件的事件
(1)commevent属性用于传回下列所述的值之一,来表示不同的通讯错误或事件,通讯错误的返回值如表4所示
(2) 通讯事件的返回值如表5所示。
4.4 visual basic中用于串口通讯的程序代码
(1) 在bbbb1的代码的公共部分定义变量:
dim rcvlenth as integer
定义接收数据长度的整形变量
dim rcv() as byte
定义接收数据的动态数组
dim send(50) as byte
定义发送数据的动态数组
(2) 在bbbb1——load的代码中对mscomm1控件进行设置:
private sub bbbb_load()
rcvlenth=0
mscomm1.commport=1 指定计算机通讯的端口号
mscomm1.settings = "9600,n,8,1" 设置通讯波特率及校验方式
mscomm1.bbbbbmode= combbbbbmodebinary
mscomm1.rthreshold=1
mscomm1.bbbbblen=0
mscomm1.outbuffercount=0
if not mscomm1.portopen then mscomm1.portopen =true
end sub
(3) 在mscomm1的oncomm()事件中加入以下代码,用于接收数据:
private sub mscomm1_on-comm()
dim i as intger
dim rcvtemp() as byte
redim preserve rcv (mscom-m1.inbuffercount) asbyte
select case mscomm1.com-mevent
case comevreceive
rcvtemp=mscomm1.bbbbb
for i=lbound(rcvtemp) to ubound(rcvtemp)
rcvlenth=rcvlenth + 1
rcv(rcvlenth)=rcvtemp(i)
next i
end select
end sub
(4) 在timer1_timer()事件中加入如下代码用于定时的发送数据:
private sub timer1_timer()
dim i as intger
for i=1 to 50
mscomm1.output = send(i)
next i
end sub
(5) 程序界面如图6所示。
图6 程序界面
5 结束语
s7-200的自由口通讯方式,使用户可以通过plc指令自己定义通讯协议,从而与任何公开通讯协议的rs-422或rs-232c接口设备进行通讯,使通讯范围大为增加,控制系统配制更加灵活。本文也介绍了采用vb进行串行口通讯的控件和编程方法。采用本文叙述的方法,可以组成一个上、下位机控制管理系统,将plc的信息转换成各类画面显示,并可以对plc的参数进行实时修改,达到管理、控制一体化。