找plc产品、学plc技术、看plc新闻-尽在PLC行业网!

PLC行业网-三菱plc编程入门,plc视频教程,plc学习,plc教程,plc编程实例

PLC串口在获取传感器数据中的应用

时间:2011-09-13 20:41来源:未知 作者:www.plcs.cn 点击:

 

  摘要:介绍了用西门子s7—200 PLC可编程控制器通过RS一485串口连接两个传感器测量转速与角度,从中获取转速和角度数据,并进行数据处理。

  关键词:PLC;s7—200;RS一485;串口通信

  0引言

  s7—200是西门子公司研制的一种新型可编程控制器,它工作可靠,功能强,存储容量大,编程方便,抗干扰能力强,并且有较强的通信功能。因此可以通过它的串口与计算机或其他智能装置进行联网及通信,现代工业设备大都具有智能化、模块化的特点,往往只需要上位机发出一条指令就可以独自完成工作,并将结果通过总线返回给上位机,在其工作期间不需要任何其它设备的干预,这就给上位机留有时间来完成其它工作,对于保障系统的稳定性起到了重要作用。本文介绍的系统由s7—200通过RS一485总线连接速度和角度传感器,角度和速度传感器分布于工业现场的不同位置,PLC向它们发送测量指令,传感器收到指令后向PLC回传含有速度和角度值的数据,并由PLC完成数据处理任务。

  1系统硬件构成

  本系统主要由电源模块、PLC、两个分布在不同场地的旋转变压器、FB900C及FB900V变送器构成,如图1所示。电源模块向PLC提供24 V直流电,市电向FB900C、FB900V提供220 V交流电,PLC上RS一485口的3、8是数据A、B端,而FB900C/V的8、9是RS一485的数据A、B端,因此FB900C/V串口的8、9分别与PLC串口的3、8相连。FB900C/V上的端子号从左至右依次为1—7.其中l、2为供电端口,3、4为FB900C/V向旋转变压器提供的8 V交流电,5、6、7为旋转变压器向FB900C/V提供的信号。

  2软件设计总体思路

  FB900C/V将旋转变压器传来的信号分别转换成角度和速度数据,通过RS一485总线传向PLC再由PLC对其进行处理。为了避免数据传输过程中发生数据冲突,将FB900C/V设置成指令传送模式,FB900C/V收到相应的指令就会向RS一485总线上传含有角度和速度的数据,没有收到相应的指令就不会发送数据。一为了避免数据冲突,采用分时读取FB900C和FB900V数据方式,即PLC先发送读取速度数据指令,FB900V收到后就立即向总线上传送速度数据,PLC收到总线上的数据后将其存储下来并对其进行处理,完成数据处理后PLC再发送读取角度数据指令,FB900C收到指令后立即向总线上传送角度数据,PLC收到总线上的数据后将其存储下来并对其进行处理,完成数据处理后PLC再发送读取角度速度数据指令,依次不断循环下去。分时工作由PLC的定时器T32和T96完成,T32定时则 T96复位,如果196定时,则132复位,依次循环。

  它们的周期都为40 ms,T32等于40 ms时,PLC发送读取速度指令,并打开中断事件25,FB900V传送速度数据后,PLC响应字符中断接收完数据后就将其处理完毕,接着将132复位。再打开I"96直到1"96等于40 ms,PLC发送读取角度指令,并打开中断事件25,FB900C传送角度数据后,PLC响应字符中断接收完数据后就将其处理完毕,接着将196复位并打开132,如此不断循环。流程图如图2所示。

  在流程图中两个定时器依次打开和复位,当每个定时器计时到40 ms,就触发程序发送相应的读数指令,响应字符接收中断接收传感器发送过来的数据,处理接收到的数据。定时器132、196起到了作为采集速度、角度数据标志信号的作用,此外还可以通过更改定时器的延时值来控制采集传感器信号的周期。发送指令、接收数据及数据处理在文章的后续部分作详细介绍,主程序流程中就不作叙述了。

  3 PLC及FB900C/V串口参数的设定

  SMB30和SMBl30是S7—200的通信控制字,用来设置通信的波特率,奇偶校验位、停止位和字符长度。SMB30对应端口0,SMBl30对应端口l。SMB30和SMBl30的各位及含义如表l所示。

  其中,校验方式:00和11均为无校验、01为偶校验、10为奇校验;字符长度:0为传送字符有效数据是8位、1为有效数据是7位;波特率:000为38 400、001为19 200、010为9 600、011为4 800、100为2 400、101为l 200、110为600、111为300;通信协议:00为PPl协议从站模式、01为自由口协议、lo为PPI协议主站模式、11为保留,缺省设置为PPI协议从站模式。

  FB900V/C变送器的信号采用波特率为9 600,数据位为7位,校验方式为偶校验,它们的设定通过购买时自带的软件来设定。PLC的通讯协议采用自由口协议。为了实现PLC与FB900V/C之间能够传送数据,寄存器SMBl30的各位的值的设定如表2所示,从表2中可得出SMBl30对应的16进制数为69。

  4数据的发送与接收

  FB900C/V的读数指令格式如表3所示。

  FB900C/V读取速度和角度数据指令的字符位都是52H,结束位都是0DH(厂家规定值),模块编号可以根据需要自行设定。FB900V的模块编号设为30H、32H负责传送速度数据,FB00C的模块编号设为30H、31H负责传送角度数据。FB900V速度变送器的数据输入指令格式如表4所示。

  FB900C角度变送器的数据输人指令格式如表5所示。

  PLC发送指令(XMT)激活发送数据缓冲区(TBL)。数据缓冲区第一个数据指明了要发送的字节数,最大数为255个。PORT指定了用于发送的端口。发送读取速度数据指令,就将04、52、30、32、OD(都为16进制)填入发送缓冲区,发送读取角度数据指令,就将04、52、30、31、0D(都为16进制)填人发送缓冲区。发送完后打开字符接收中断,本系统中用的是端口1,对应的中断号是25。每接收一个字符产生一次中断,中断链接到中断处理程序,中断处理程序将接收到存储在SMB2中的字符,再转存到PLC里的存储区。

  传感器发送数据格式如表6所示,1是开始位,2、3是变送器编号,4是状态位(指输出数据的状态其中D=角度数据,V=速度数据,E=变送器出错)5为数据的符号,6位以后为数据(角度数据最多为8位数据+l位小数点,速度数据最多为4位数据+l位小数点),最后一位为结束位CR(0DH)。

  表中都是16进制的角度数据,并且变送器编号为01,输出角度为268。。对应字符(ASC II码)如表7所示。


 速度数据格式如表8所示。

  表中都是16进制的速度数据,并且变送器编号为02,输出速度数据为12.0时,对应字符(ASC II码)如表9所示。

  PLC接收传感器发送来的数据以是否收到02H为开始,如果没有收到02H则中断返回,收到02H则将后续字符转移到PLC所指定的存储单元并检验是否接受到0DH,接收到结束位0DH就开始对所收到的数据进行处理。数据的接收流程如图3所示,在数据接收流程中,每接收一个字符就会产生一次字符接收中断,INlD和INTl都是中断服务程序。在没有收到起始字符时INT0为产生的字符中断服务,INTO中先判断收到的字符是否是02H,若是,就将字符缓冲区的第一个字节VBl00清零,调用子程序2将02H存入VBl00之后的存储单元中,接着就将INTl连接到字符中断,这时INTl为产生的字符中断服务(INTO不起作用)。在收到起始字符后产生的每次字符中断,中断服务程序INTl都调用子程序2,将收到的字符存人起始字符的后续单元中。本文来自 PLC网www.plcs.cn

  INTl在存储收到的字符后还判断收到的是否为结束字符,若收到,就调用子程序3进行数据处理并将INTO再次连接到字符中断(此时INTl不起作用),准备进行下一组数据的接收。

  子程序2代码如下:

  LD SMO.0//装载指令

  INCB VBl00//字符计数器加1

  INCD VD86//指针VD86加1

  MOVB SMB2,}VD86//字符存入指针所指单元子程序3为数据处理程序,在后面的文字中将作详细介绍并配有流程图。

  5数据处理

  从传感器接收过来的数据只是从02H一0DH之间的一组16进制字符,还无法直接将其中所包含的角度和速度值以一个数的形式来使用。本文所讲的数据处理,只是从接收过来的一组字符中取出所包含的速度和角度值。数据处理的关键在于找出02H一0DH之间的数据位和符号位,并将其按照:Y=±(xl一30H)×l+(x2—30H)×10+(x3—30H)×100+(x4—30H)×1000+(x5—30H)×10000??,计算出对应的十进制值。x1为0DH前的第一个字符,)【2为0DH前的第二个字符,】【3为0DH前的第三个字符,依次类推直至符号位后面的第一个字符,本文中对数据精度的要求不需要精确到小数位,所以若0DH前的第二个字符为2E,则令xl为0DH前的第三个字符,)【2为0DH前的第四个字符,)【3为0DH前的第五个字符依次类推直至符号位后面的第一个字符。软件实现时指针VD96、VD86都指向ODH,VD76指向02H,VD86一VD76—6为含有数据位的个数,若个数大于6则继续执行后续指令,否则收到的字符组中不含有数据(这种情况下起始字符、模块编号、状态位、符号位加结束字符不会超过6位),返回即可。VW520存放了数据结果,符号位为“一”时只需用O减去VW520结果再存入VW520即可,符号位为“+”时不需要作任何变化。软件处理流程如图4所示。流程图中,指针VD86和VD96都指向结束字符,VD76在数据接收流程中已指向起始字符,VD86一VD76可求出接收缓冲区字符的个数,移动指针VD96可依次找出个位、十位、百位等对应的字符。VW60里是传感器所测数据有效数据的个数,用来判断乘累加是否结束,VW600里是传感器所测数据有效位对应的十进制数乘以权值后所得的结果,VW500存放乘累加的结果,VW510存放的是有效数据位个位、十位、百位等对应的权值,在乘累加过程中VW510的值会依次为l、10、100、1000等,VW400、VW420里都存放了由指针VD96所取出的字符,VW410里存放了由ASCII码转换的十进制数,VW520保存了上一次十进制所测的数据。

  6结语

  综上所述,本系统在80 ms的周期内分别对角度和速度值各采集一次,并将它们转换成十进制,为PLC后续工作提供了数据来源。经实践证明,可靠性、稳定性比较好,能够满足实时性要求不是较高的工业应用场合。

  参考文献

  [1]刘万忠,刘明芹.电器于PLC控制技术[M].北京:化学工业出版社,2003.

  [2 ]廖常初.PLC编程及应用[M].北京:机械工业出版社,2003.

  [3] 北京飞博尔电子有限公司.FBgoov角位速度变送使用说明[M].北京飞博尔电子有限公司,2005.

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
推荐内容