基于VB实现台达PLC与PC - 机串行通讯

发布时间:2012-04-25 08:24:00   来源:文档文库   
字号:

基于VB实现台达PLCPC串行通讯

随着工业自动化控制技术的不断发展,可编程逻辑控制器(PLC)与上位机之间通讯的应用越来越广泛。在PLC与上位机组成的集散控制系统中,PLC作为下位机完成现场各种信号和数据的采集、运算和完成对系统的底层控制,上位机则可提供人机交互界面,实现数据的处理以及现场数据的实时显示等监视和远程控制等功能。实现面向产品全生命周期的数字化远程服务经营理念的制造装备的远程监测、诊断与维护技术,随着移动通讯市场的迅速扩大,GSM 无线数字蜂窝通讯网络在我国得到了高速的发展,不但拥有较高的覆盖率,而且相继开放了SMS(短消息)FAX(传真)DATA(数据)等业务,为选择高效、廉价的数据传输提供了新的思路。各种组态软件,如:iFixMCGS、组态王等虽然可以实现PLC的远程监控,但不能实现PLC Modbus通讯协议与GSM模块的通讯协议的转换。本文就是基于这点考虑,运用VB编制操作界面和通信功能,完成台达PLCPC机串行通讯,这是实现GSM模块与PLC通讯的关键技术所在。

1 通讯硬件及协议简介

1.1通讯硬件组成

台达PLC自带有两个通讯串口(EH系列可扩展第三个通讯口RS-485RS-422COM1COM2COM1采用标准RS-232接口,它是一种近距离、低干扰、点对点的通讯协议。该接口在下载完PLC程序后一般都处于闲置状态。COM2是标准RS-485接口,可用于用抗干扰能力强、可多台串接组网的通讯方式。在该生产线的控制系统中,COM2已用于PLC与变频器之间的通讯,而一般PC机都自带标准RS-232接口。因此PC机与PLC之间通讯采用COM1RS-232)接口,连接线采用台达PLC的编程电缆DVPACAB230

1.2通讯协议介绍

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。控制器能设置为两种传输模式(ASCIIRTU)中的任何一种在标准的Modbus网络信。

PLC与上位机通讯时,通常由上位计算机发出命令给PLCPLC处于被动状态。台达PLC所有通讯口都遵循Modbus通讯协议,出厂默认的通讯格式为“96007E1ASCII模式。波特率为9600,数据长度为7位,数据校验方式为偶校验,结束字元长度为1位,以上参数可以通过WPL编程软件修改。本文仅以ASCII通讯模式为例实现台达PLCPC机的通讯。ASCII通讯格式如表1所示:

1ASCII通讯格式

地址:地址栈号范围为01~FF十六进制数

功能码: 01读多个S YMTC的状态,PLC返回一串数据,其中包含了读出的一系列装置的十六进制数。

02”读取SYMTC输入状态,PLC返回一串数据,其中包含了读出的一系列装置的十六进制数。

03”读取 DTC寄存器的值,返回数据串中包含寄存器值的十六进制数。

05”强制使S YMTC置位或复位,当数据内容为“FF00置位,当为“0000则复位。

06”PLC DTC寄存器写值, 值应为十六进制的。

LRC校验码: LRCLongitudinal Redundancy Check错误校验用于ASCII模式。这个错误校验是一个8位二进制数,可作为2ASCII十六进制字节传送。把十六进制字符转换成二进制,加上无循环进位的二进制字符和二进制补码结果生成LRC错误校验(参见图)。这个LRC在接收设备进行核验,并与被传送的LRC进行比较,冒号(:)、回车符号(CR置入的其他任何非ASCII十六进制字符在运算时忽略不计。范例如2所示:

2LRC校验码计算示例

Address + Function + Data1 + Data2 + Data3 + Data4 = 01 + 03 + 04 + 01 + 00 + 01 =0A 0A 的值周转换成2 的补数, 0A 2 补数 = F6

2 软件实现

我们采用的是基于VB(Visual Basic)平台编写的驱动程序。VB是一个可视化的高级语言,为用户提供直观的工作环境,为监控系统建立良好的用户界面奠定了基础。VB采用事件驱动,编程与调试方便,可以快速地编制出性能良好的应用程序,

通过对串行通信控件MSComm的简单配置,就可以完成串行口的读写操作,是上位机监控系统常用的开发工具PLC与上位机通信之前,必须对RS232通讯端口进行初始化,包括波特率、起始位、数据位、停止位、奇偶校验等,使两者按照相同的格式通讯.C200HXRS232C通讯口一般设置为9 600 bps7位数据位,1个停止位,偶校验,I位起始位.可对VBMSComm控件的setting属性进行设置来实现对串口的初始化

2.1 MSComm控件

MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。常用通信属性如下:

CommPort属性:用来设置或返回通信端口号码。

Settings属性:用来设置波特率、奇偶校验、数据位和停止位。

PortOpen属性:用来设置或返回通信连接口的状态。

Input属性:用于从输^缓存区返回并删除字符。

Output属性:用于将一个字符串写入输出缓存区。

CommEvent属性:在通信错误或事件发生时会产生OnComm事件,CommEvent属性存有该错误事件的数值码。

2.2通信程序的编写

此程序只涉及PC机与台达PLC通讯部分,计算机对外部信号处理本文稍后介绍

MSComm1.CommPort = 1 ‘设置COM1通讯端口

If MSComm1.PortOpen = False Then打开串口

MSComm1.PortOpen = True

End If

MSComm1 .Settings = "9600,E,7,1" '.Settings:设置并返回波特率9600、偶校验、数据位7、停止位1位的通讯格式

MSComm1 .InBufferCount = 0清空接收缓冲区

MSComm1.OutBufferCount = 0清空发送缓冲区

MSComm1 .InputMode = 0设置数据格式为字符形式

MSComm1.RTSEnable = True串口通讯使能

MSComm1.Output =符合协议的字符命令串 ‘PCPLC发送数据

Text1.Text= MSComm1.Input ‘PLC PC机返回数据

MSComm1.PortOpen = False数据发送后关闭串口

End Sub

3通信示例

预设PLC站号地址为“01,以下若没有特殊说明PLC站号地址为“01

CR”表示回车

31 对辅助继电器M0操作

1)置位M0

Data1 Data2表示辅助继电器的地址,Data1放入地址的高8位,Data2放入地址的低8,“FF00表示置位放入Data3 Data4LRC为校验码

PCPLC发送字符命令串=“:01050800FF00F3CR

PLCPC返回字符串=“:01050800FF00F3CR

2)复位M0

0000”表示复位放入Data3 Data4,其余同上不再解释。

PCPLC发送字符命令串=“:010*********F3CR

PLCPC返回字符串=“:010*********F2CR

若第三个数据位变为8,则通讯出现错误。

32 文件寄存器D512操作

1)向D512写入一个十进制数,如把D512设定为32 先将十进制数值转换为四位的十六进制数,32转换为0020,高低8位分别放入Data3 Data4

1200”表示D512的地址高低位分别放入Data1 Data2

PCPLC发送字符命令串=“:010*********C7CR

PLCPC返回字符串=“:010*********C7CR

2)读取PLCD512

Data3 Data4中数据内容表示读取以Data1 Data2地址起始的寄存器个数,此值最大值为7(由通讯格式中数据位决定),若该数据内容为0002,则表示读取连续两个寄存器的值,依次类推。1200表示D512的地址。

PCPLC发送字符命令串=“:010*********E9CR

PLCPC返回字符串“:01030204B046CR

02表示返回值字节总数为2(一个寄存器的字节数为2),04B0表示目标寄存器D512的数据内容(十六进制)即十进制数120046表示校验码。

若第三个数据位变为8,则通讯出现错误。

4 结束语

台达PLCPC通讯的实现使PLCGSM模块通讯成为可能。PC机作为中转站完成Modbus通讯协议与GSM通讯协议的转换,使GSM 无线数字蜂窝通讯网络运用于基于PLC的工业控制系统,实现制造装备的远程监测、诊断与维护技术。

参考资料

[1] 杨久红,王小增.MSCOmm控件实现PCPLC串行通讯[J] .现代电子技术.2005,196(5):

114-115

[2] 林伧意DVP通讯协定V1.1.pdf .台达PLC工程技术部文件 编号C-PLC-A003

[3] 范逸之.Visual Basical与分布式监控系统—RS-232/485串行通讯[M] .清华大学出版社.2002

本文来源:https://www.2haoxitong.net/k/doc/779b9df5f90f76c661371a51.html

《基于VB实现台达PLC与PC - 机串行通讯.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式