用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

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

万方数据

,、曩—■簟■—豳

用VC实现PC与多PLC之间串行通信的方法相关文档

最新文档

返回顶部