搜档网
当前位置:搜档网 › 台达PLC与PC机串行通讯以及相应地址资料

台达PLC与PC机串行通讯以及相应地址资料

VB实现台达PLC与PC串行通讯
(PLC)与上位机之间通讯的应
在PLC与上位机组成的集散控制系统中,PLC作为下位机完成现场各种信号和
运算和完成对系统的底层控制,上位机则可提供人机交互界面,实现数据的处
为实现面向产品全生命周期的数字化
诊断与维护技术,随着移动通讯市场的迅速扩大,
无线数字蜂窝通讯网络在我国得到了高速的发展,不但拥有较高的覆盖率,而且相继开
SMS(短消息)、FAX(传真)、DATA(数据)等业务,为选择高效、廉价的数据传输提供了新
iFix、MCGS、组态王等虽然可以实现PLC的远程监控,但不能
PLC Modbus通讯协议与GSM模块的通讯协议的转换。本文就是基于这点考虑,运用VB编
PLC与PC机串行通讯,这是实现GSM模块与PLC通讯的

通讯硬件及协议简介
通讯硬件组成
PLC自带有两个通讯串口(EH系列可扩展第三个通讯口RS-485或RS-422)COM1和COM2。
采用标准RS-232接口,它是一种近距离、低干扰、点对点的通讯协议。该接口在下载完
程序后一般都处于闲置状态。COM2是标准RS-485接口,可用于用抗干扰能力强、可多台
COM2已用于PLC与变频器之间的通讯,而
PC机都自带标准RS-232接口。因此PC机与PLC之间通讯采用COM1(RS-232)接口,连接
PLC的编程电缆DVPACAB230。
通讯协议介绍
协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、
(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有
不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制
,而不管它们是经过何种网络进行通信的。它描述了一控制器请求
如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了
当在一Modbus网络上通信时,此协议决定了每个控制器须要
如果需要回应,控制
Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在
这种转换也扩展了根据具体的网络解决节地址、路由路径及错
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus

与上位机通讯时,通常由上位计算机发出命令给PLC,PLC处于被动状态。台达PLC所有通
Modbus通讯协议,出厂默认的通讯格式为“9600,7,E,1”、ASCII模式。
9600,数据长度为7位,数据校验方式为偶校验,结束字元长度为1位,以上参数可
WPL编程软件修改。本文仅以ASCII通讯模式为例实现台达PLC与PC机的通讯。ASCII
1所示:
Address Function Data LRC End
1位 1位 1~32 位 1位 回车键
表1:ASCII通讯格式
01~FF十六进制数(PLC站号地址)
功能码:” 01”读多个S、 Y、M、T、C的状态,PLC返回一串数据,其中包含了

“02”读取S、Y、M、T、C

输入状态,PLC返回一串数据,其中包含了

“03”读取 D、T、C寄存器的值,返回数据串中包含寄存器值的十六进

“05”强制使S、 Y、M、T、C置位或复位,当数据内容为“FF00”置位,
0000”则复位。
“06”向PLC 的D、T、C寄存器写值, 值应为十六进制的。
校验码: LRC(Longitudinal Redundancy Check)错误校验用于ASCII模式。
8位二进制数,可作为2个ASCII十六进制字节传送。把十六进
LRC错
LRC在接收设备进行核验,并与被传送的LRC进行比较,
CR)及置入的其他任何非ASCII十六进制字符在运算时忽
2所示:
Address Function Data1 Data2 Data3 Data4 LRC End
01 03 04 01 00 01 CR
2:LRC校验码计算示例
将0A 的值周转换成2 的补数, 0A 的2 补数 = F6。
補數的求法:(1補數再加1)
(H) = 0000 1010(B)先取1補數(將b0~b7反相)得1111 0101(B),再加1為 1111
(B) = F6(H)即為0A(H)的2補數。
软件实现
VB(Visual Basic)平台编写的驱动程序。VB是一个可视化的
VB采用事件驱动,编程与调试方便,可以快速地编制出性能良好的应用程序,
MSComm的简单配置,就可以完成串行口的读写操作,是上位
PLC与上位机通信之前,必须对RS一232通讯端口
C200HX的RS一232C通讯口一般设置为9 600 bps,7位数据位,1
I位起始位.可对VB的MSComm控件的setting属性进行设置来

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

属性:用来设置或返回通信端口号码。
属性:用来设置波特率、奇偶校验、数据位和停止位。
属性:用来设置或返回通信连接口的状态。
属性:用于从输^缓存区返回并删除字符。
属性:用于将一个字符串写入输出缓存区。
属性:在通信错误或事件发生时会产生OnComm事件,CommEvent

通信程序的编写
PC机与台达PLC通讯部分,计算机对外部信号处理本文稍后介绍
‘设置COM1通讯端口
‘打开串口
MSComm1.PortOpen = True
.Settings = "9600,E,7,1" '.Settings:设置并返回波特率
、偶校验、数据位7位、
1位的通讯格式
MSComm1 .InBufferCount = 0 ‘清空接收缓冲区
MSComm1.OutBufferCount = 0 ‘清空发送缓冲区
MSComm1 .InputMode = 0 ‘设置数据格式为字符形式
MSComm1.RTSEnable = True ‘串口通讯使能
符合协议的字符命令串 ‘PC向PLC发送数据
‘PLC 向PC机返回数据
‘数据发送后关闭串口
通信示例
预设PLC站号地址为“01”,以下若没有特殊说明PLC站号地址均为“01”。
CR”表示回车
.1 对辅助继电器M0操作
1)置位M0
Address Function Data1 Data2 Data3 Data4 LRC En

d
01 05 08 00 FF 00 F3 CR
、 Data2表示辅助继电器的地址,Data1放入地址的高8位,Data2放
8位,“FF00”表示置位放入Data3 、Data4,LRC为校验码
向PLC发送字符命令串=“:01050800FF00F3CR”
向PC返回字符串=“:01050800FF00F3CR”
)复位M0
Address Function Data1 Data2 Data3 Data4 LRC End
01 05 08 00 00 00 F2 CR
0000”表示复位放入Data3 、Data4,其余同上不再解释。
向PLC发送字符命令串=“:010*********F3CR”
向PC返回字符串=“:010*********F2CR”
8,则通讯出现错误。
.2 对文件寄存器D512操作
)向D512写入一个十进制数,如把D512设定为32, 先将十进制数值转换为四
32转换为0020,高低8位分别放入Data3 ,Data4
1200”表示D512的地址高低位分别放入Data1、 Data2
Address Function Data1 Data2 Data3 Data4 LRC End
01 06 12 00 00 20 E6 CR
向PLC发送字符命令串=“:010*********C7CR”
向PC返回字符串=“:010*********C7CR”
)读取PLC的D512值
Address Function Data1 Data2 Data3 Data4 LRC End
01 03 12 00 00 01 E9 CR
、Data4中数据内容表示读取以Data1、 Data2地址起始的寄存器个数,
7(由通讯格式中数据位决定),若该数据内容为0002,则表示读取
1200表示D512的地址。
向PLC发送字符命令串=“:010*********E9CR”
向PC返回字符串“:01030204B046CR”
表示返回值字节总数为2(一个寄存器的字节数为2),04B0表示目标寄存器
的数据内容(十六进制)即十进制数1200,46表示校验码。
8,则通讯出现错误。
结束语
台达PLC与PC通讯的实现使PLC与GSM模块通讯成为可能。PC机作为中转
Modbus通讯协议与GSM通讯协议的转换,
GSM 无线数字蜂窝通讯网络运
PLC的工业控制系统,实现制造装备的远程监测、诊断与维护技术。

杨久红,王小增.MSCOmm控件实现PC与PLC串行通讯[J] .现代电子技术.2005,196(5):
林伧意DVP通讯协定V1.1.pdf
台达PLC工程技术部文件 编号
C-PLC-A003
范逸之
Visual Basical与分布式监控系统—RS-232/485串行通讯[M] .清华大学
.2002

相关主题