你现在位置:首页>技术论文>数据通讯>正文
PLC通讯在纺纱质量在线检测中的应用
日期:2010-8-19 21:40:08 点击:
来源:中国自动化网
作者:
点击【】放大字体.
摘 要:本文针对在线检测中出现的纱线不匀问题,通过RS-232C串口通讯,设计了上位机与欧姆龙PLC-CJ1M(CPU21)之间的数据通信,采用基于Windows操作系统功能强大的面向对象的程序设计语言——Visual Basic,编写了上位机程序,而无需在PLC中编写任何程序,可以在线获得纱线的检测数据,及时反映纱线的不匀。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

关键字:纱线检测; 串行通讯; 可编程控制器
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

0. 引言
WWW_PLCJS_COM-PLC-技.术_网

  1969年美国数字设备公司根据美国通用汽车公司的要求,研制出世界上第一台可编程序控制器。最初只能用于逻辑运算,故称为可编程逻辑控制器,简称为PLC(Programmable Logic Controller),随着计算机技术和电子技术的飞速发展,其功能远远超出顺序控制和逻辑控制的范畴,不仅实现了数据运算和处理能力,而且体积小,功能强,可靠性高,编程直观,适应性好,接口方便,性价比高。
——可——编——程——控-制-器-技——术——门——户

  近年来,随着现代化生产技术的提高,以及计算机技术、信息技术和通讯技术的相互渗透,纱线的不匀直接导致布面的不平整,这就说明在纱线生产环节极为重要。纱线不匀是影响其品质的重要指标之一。传统的纱线检测方式都是在实验室离线进行的,通过对纱线的抽样,要求一定的温湿度前提下,相对于纱线的在线检测反映出离线检测的滞后性和随机性。RS-232C串行通讯实现比较容易,常被用于自动控制、数据采集、智能仪表等上位机与外部设备的数据通讯。本文设计了VB与欧姆龙PLC-CJ1M(CPU21)之间的数据通信,在线获得纱线的检测数据,如CV值、纱线瞬时直径、平均直径、粗节最大值、细节最小值等等,及时反映纱线的不匀,使操作人员及时做出相应调整。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

1. 上位机与PLC之间通讯实现
WWW_PLCJS_COM-PLC-技.术_网

  欧姆龙PLC—CJ1M(CPU21)有两个串行通讯口,一是通过欧姆龙专用串口通讯线CS1W-CN226,其网络类型设置为Toolbus,同时将DIP4串行通讯设状态置为ON;一是通过欧姆龙九针串口通讯线XM2Z-200S-CV,其网络类型设置为SYSMAC WAY,其它为默认设置,包括端口为COM1,波特率为9600。图1所示为上位机通过RS-232C端口连接到PLC的示意图,也可以称作1:1连接。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

WW.W_PLCJS_COM-PLC-技.术_网

图1 RS-232C端口的1:1连接
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  图2所示为上位机与PLC之间通讯实现过程。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

图2 上位机与PLC之间通讯实现过程
WWW_PL※CJS_COM-PLC-技.术_网

2. VB与PLC之间通讯协议和程序实现
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  2.1 链接系统的通讯协议
WWW_PLC※JS_COM-PmLC-技.术_网

  在纱线数据通讯中,只需要在上位机系统中编写上位机通讯程序,无需在PLC中编写任何程序,PLC CPU会根据上位机发来的命令帧自动生成响应帧返回给上位机。命令帧和响应帧之间包含需要通讯的数据,只有保证正确实现命令帧和响应帧之间的应答,才能实现准确的数据交换。命令和应答有两种方式,一种是从上位机发命令到PLC,另一种方式允许PLC发命令给上位机,我们采用浅一种方式。
WWW_P※LCJS_COM-PLC-)技.术_网

  从上位机发送命令时的命令帧和响应帧如图3。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

W1WW_P4LCJS_COM-PLC-技.术_网

图3 命令帧和响应帧格式
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  命令帧中:
WWW_PLCJS@_COM%-PLC-技.术_网

  @——命令开始标志,所有命令都以“@”开始;
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  节点号——与上位机连接的PLC,在1:1连接中默认值为00;
——可——编——程——控-制-器-技——术——门——户

  标题码——设置两字节的命令代码,如RD代表读PLC的DM区数据;
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  正文——设置命令参数
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

  FCS——设置两字符的帧检查顺序码,用于校验,是用两位ASCII码表示的8位数据,是从“@”开始到正文结束的所有字符的ASCII码按位异或运算的结果;
WWW_PLCJS_COM-PLC-技.术_网

  结束符——表示命令的结束,用“*”和回车符“CHR$(13)”标明。
plcjs.技.术_网

  应答帧中:
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

  @、节点号、标题码、FCS和结束符同命令帧中的含义。
W1WW_P4LCJS_COM-PLC-技.术_网

  异常号——返回命令的执行状态,,是否有错误发生。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

  2.2 通讯端口初始化
WWW_PL※CJS_COM-PLC-技.术_网

  在上位机与PLC实现通讯之前,必须先在上位机VB中设置通讯控件MSComm1的相应属性,通讯口初始化程序一般放在窗体加载程序中。
W1WW_P4LCJS_COM-PLC-技.术_网

  Private Sub Form_Load()
WWW_PL※CJS_COM-PLC-技.术_网

  MSComm1.CommPort = 1 ‘设置Com1通讯口
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  MSComm1.Settings = “9600,e,7,2” ‘波特率9600,e偶校验,7位数据位,2位停止位
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  MSComm1.PortOpen = True ‘打开通讯端口
P.L.C.技.术.网——可编程控制器技术门户

  MSComm1.InBufferCount = 0 ‘清空接收缓冲区
WWW_PL※CJS_COM-PLC-技.术_网

  End Sub
WWcW_PLCJS_COM-PLC-技.术_网

  其它设置均取通讯控件MSComm1的默认值。
WWW_P※LCJS_COM-PLC-)技.术_网

  2.3 帧格式代码
WWW_P※LCJS_CO※M-PLC-技-.术_网

  采用基于Windows操作系统功能强大的面向对象的程序设计语言——Visual Basic,编写了上位机程序,建立了上位机与PLC之间良好的通讯协议。以读内存DM区为例:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  上位机命令帧:
WW.W_PLCJS_COM-PLC-技.术_网

  "@" "00" "FA" "1" "00000000" "0101" "82" 开始地址 读取个数 FCS 结束符
WWW_PLCJS@_COM%-PLC-技.术_网

  PLC应答帧:
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

  "@" "00" "FA" "1" "00000000" "0101" "82" "0000" 读取数据 FCS 结束符
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  其中:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

  FA——表示FINS命令
WWW_PLCJS@_COM%-PLC-技.术_网

  0101——表示连续读内存区
WWW_PLC※JS_COM-PmLC-技.术_网

  82——表示读内存DM区
P.L.C.技.术.网——可编程控制器技术门户

  2.4 校验算法实现
——可——编——程——控-制-器-技——术——门——户

  为了保证通讯数据准确无误的传输,欧姆龙PLC对通讯数据以按位异或算法进行校验。代码如下,仅供参考。
——可——编——程——控-制-器-技——术——门——户

  Option Explicit
——可——编——程——控-制-器-技——术——门——户

  Function FCS(ByVal temp1 As String) As String
WW.W_PLCJS_COM-PLC-技.术_网

  Dim slen1, i, xorresult1 As Integer ‘ 定义变量
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

  Dim tempfcs1 As String
WWW_P※LCJS_CO※M-PLC-技-.术_网

  xorresult1 = 0
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

  slen1 = Len(temp1) ‘ 求输入字符串的长度
WWW_PLCJS@_COM%-PLC-技.术_网

  For i = 1 To slen1
WWW_P※LCJS_CO※M-PLC-技-.术_网

  xorresult1 = xorresult1 Xor Asc(Mid(temp1, i, 1)) ‘从首字符到尾字符获取ASCII码,按位异或
WWW_PLCJS_COM-PLC-技.术_网

  Next i
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

  Tempfcs1 = Hex$(xorresult1) ‘转换为16进制
——可——编——程——控-制-器-技——术——门——户

  If Len(tempfcs1) = 1 Then
WWW.PLCJS.COM——可编程控制器技术门户

  FCS = "0" & tempfcs1
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

  Else
W1WW_P4LCJS_COM-PLC-技.术_网

  FCS = tempfcs1
WWW_P※LCJS_CO※M-PLC-技-.术_网

  End If
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

  End Function
WWW_PLC※JS_COM-PmLC-技.术_网

3. 结束语
P.L.C.技.术.网——可编程控制器技术门户

  本文作者创新点主要通过RS-232C串口通讯,采用面向对象的可视化编程工具——Visual Basic建立上位机与欧姆龙PLC-CJ1M(CPU21)之间的数据通讯,获取纱线在线检测数据,现场实测表明能够快速准确在线测量纱线的CV值、瞬时直径、平均直径、粗节最大值、细节最小值等等,实时反映纱线的不匀率,对提高棉纺企业纱线质量具有重要的意义。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

参考文献:
WWcW_PLCJS_COM-PLC-技.术_网

  [1]荣大龙. VB编程PLC串行通讯技术及应用[J].微计算机信息,2002,11:54-56
P.L.C.技.术.网——可编程控制器技术门户

  [2]张智杰.使用VB开发PLC的串行通讯程序.仪器仪表用户[J],2002,9(1):23-25
plcjs.技.术_网

  [3]余松,赵忠堂.用VISUAL BASIC实
评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行