用VC实现PC与多PLC之间串行通信的方法
——圈曩圈——__圈啊
中文核心期刊《微计算机信息》(测控自动化)2004年第20卷第9期
用VC++实现PC与多PLC之间串行通信的方法
ImplementationofcommunicationbetweenPCandmuti—PLC
by慨+
(扬州大学)陈兴张礼全史旺旺
Chen,XingZhang。Liquan
Shi,Wangwang
摘要:主要介绍如何用VC++实现实时要求比较高的小型控通过RS232C、RS422和RS4-85通信接口.可实现有协议通信(上制系统中PC与多PLC之间的串行通信。并给出了一个实例位机链接通信、一对一接通信和NT连接通信)和RS232C无协程序,该程序可靠性高、实时性好。有较高的使用价值。议通信。该模块本身不带RS232C接口.应使用RS232C通信模关键词:VC++;PLC:串行通信;上位机;多线程
块或通信适配器,再与上位机的RS232C接口连接。一台上位机中图分类号:TPl4
文献标识码:A
可以控制一台PLC(1:1连接),通过RS232C—Rs422/485适配文章编号:1008-0570(2004)09-0006—02
器可以连接多至32台PLC(1:N连接)。其接线如图1所示。
1.2通信协议
Abstract:This上位机与PLC通信中数据以“帧”为单位传送,上位机一般paper
introduceshow
to
implementthe
serial具有优先权并启动通信,发出命令帧给PLC,PLC收到后自动发communicationbetweenPC
andmuti—PLC
in
I℃al—ti南e
contml
出响应帧。上位机可以读出PLC存储区的信息,或将信息写出systembyVC++.Theprogram
is
presentedwhich
is
reliable
入PLC。图2和图3给出了命令帧和响应帧的结构。帧中@为and
high
real-time,andhashighapplicationvalue.
协议帧的标志,节点号(即作为下位机的PLC)编号为00—31,识Keywords:VC++;PLC;serial
communication;hostcom-
别码即为操作命令码,两个字符的标识码用来说明帧的性质,正puter;muff-thread
文部分命令帧最大长度为13l字符,如果需传送等于或大于132个字符的命令必须分成若干帧。命令分段,使用回车定界引言
(CHR(13)),而不是终止符,终止符必须用在最后帧的末尾;结束码返回命令的完成情况.如是否发生错误:两个字节的FCS目前PLC已被广泛的应用于工业生产的各个领域.因为是帧校验码.是从@开始到正文结束的所有字符的ASCII码按PLC运行速度快。性能价格比高.通过编程能完成复杂的控制逻位异或的结果,每次接收一帧,计算FCS,与帧中所包含的FCS辑.通常自带RS232C、RS422或RS485等串行通信口.不仅能实
作比较从而检查帧中间的数据有没有错误。
现点到点通信,而且能够组建网络,实现一对多的通信。OM—厂.1———_r———T———r————_T——T——]——]
RONPLC串行通信采用HOSTLink协议.HOSTLink协议定义恼[x10'lxiool
f女IJ
了PLC与上位计算机串口的连接通信.HOST“nk网络通信本LJc==兰=芦弋==≯℃==了弋=7l℃=岁一节点号识别码正文FCS终止符
质上属于串行通信,Windows下的通用串行通讯的编程方法都图2命令帧的结构
适用。上位机与PLC进行串行通信.在控制系统中经常采用VC++来编程实现,因为控制系统对实时性有一定的要求。而@I×10'1×100I
IxlCxl刮
l l
J
VC++设计的程序执行速度快、效率高、灵活性好,可与WindowsAPI函数无缝连接。本文以日本OMRON公司生产的CPMlA系节点号识别码结束码正文FCS终止符
列PLC为例.讨论通过VC++编程与PLC的HOSTLink网络系图3响应帧的结构
统如何实现一对多的通信。该方法和程序已经用于作者开发的根据PLC协议格式,读命令通常为下列格式:
多闸门自动控制系统中,取得了较好的效果。
@102RD0000001055*CHR(13)
1上位机与PLC的通信
意思是上位机读取节点号为2的PLC的数据区0000开始的10个字的数据:
1.1上位机与PLC的连接
应答命令的格式为:
适配器
@02RD0023451A32:…~Ⅺ一CHR(13)
其中RD后的00表示正常结束:从2345开始有四十位共
粤卯
10个字的十六进制数据;】D【为FCS,即帧校检码。上述协议格
式中的数据全部采用ASCII码表示.包括PLC中的二进制数据,
PLC在发送数据前已经将二进制数据转换成ASCII码可见字符,而采用特殊的字符@作为帧的开始.+作为命令的结束,不可见字符CHR(13)作为帧的结束,上述通讯方式对于帧的定界是非常方便的。
一RS232C—————
2上位机串行通信程序设计方案
最多可以连接。32台P婵
RS232C协议是控制中常用的计算机串行口协议,该协议是图1上位机与PLC(1:N连接)
基于物理层的通信协议,负责直接与硬件打道,而VC++与其他一
高级语言相比在这方面具有较大的优势,这也是许多控制系统OMRON公司生产的CPMIA系列PLC与上位机的通信是采用该语言的原因,用VC++开发串行通信通常有三种方式:
中国自控网:http://www.autocontr01.com.cn
电话:010_82132436,62192616(T,F)
一6—120元,年邮局订阅号:82-946
万方数据
,、曩—■簟■—豳


