利用VB6.0 实现PC与三菱PLC的通信

上一篇 / 下一篇  2008-09-12 11:19:04

本文介绍的PC与三菱FX系列PLC通信是通过PLC的编程口与PC的串口进行的,采用SC-09编程电缆作为计算机与PLC通信的连线。电缆的9芯D型插头连接在计算机串口上,另一端连接在PLC的RS-422编程口。

编写PC的通信程序可采用汇编语言、各种高级语言,也可以采用工控组态软件,或直接采用PLC厂家的通信软件。本文采用VB6.0软件,它必须依据所连接PLC的通信规程来编写通信协议,所以我们先简单介绍FX系列PLC的通信协议。

一、FX系列PLC的通讯协议

(1)数据传输格式

FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,波特率为9600bps,字符为ASCII码。

2)通信命令

FX系列PLC有4条通信命令,它们是读命令、写命令、强制通命令、强制断命令。表中X—输入继电器;Y—输出继电器;M—辅助继电器;S—状态元件;T—定时器;C—计数器;D—数据寄存器。

命令

命令码

目标设备

读命令

0

X,Y,M,S,T,C,D

写命令

1

X,Y,M,S,T,C,D

强制通命令

7

X,Y,M,S,T,C,

强制断命令

8

X,Y,M,S,T,C,

(3)通信控制字符

FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如下表所示。

ENQ

05H

请求

ACK

06H

PLC正确响应

NAK

15H

PLC错误响应

STX

02H

报文开始

ETX

03H

报文结束

(4)报文格式

PC机向PLC发送的报文格式如下:

其中STX为开始标志;ETX为结束标志;CMD为命令的ASCII码;SUMH,SUML为从CMD到ETX按字节求累加和,溢出不计。由于每字节十六进制数变为两字节ASCII代码,故校验和为SUMH与SUML。

STX

CMD

数据段

ETX

SUMH

SUML

 

PLC向PC机发送的应答报文格式如下:

STX

数据段

ETX

SUMH

SUML

 

二、PC通信程序的编写

1、通信口初始化

MSComm控件简介:

VB带有专门管理串行通讯的MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。要完成通信必须设置MSComm的相关属性值,即通信口初始化:

1)CommPort:设置或传回通信连接端口代号。

2)Settings:设置初始化参数。以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数。

3)PortOpen:设置或传回通信连接端口的状态。

4)Input:从输入寄存器传回并移除字符。

5)Output:将一个字符串写入输出寄存器。

6)InputLen:指定由串行端口读入的字符串长度。

7)InBufferCount:传回在接收寄存器中的字符数。

 

VB6.0程序如下:

Private Sub Form_Load()

commli.CommPort = 1

commli.Settings = "9600,e,7,1"

commli.InputLen = 0

commli.InputMode = comInputModeText

commli.PortOpen = True

      If commli.PortOpen = True Then

      Label1.Caption = "打开串口"

      End If

 End Sub

 

2、通讯程序举例

首先,在窗体开始设计之前,添加MSComm控件和按钮、文本框、标签等。

1)PC从PLC中读取数据

假设PC要从PLC中读入从D123开始的4个字节的数据(占用两个数据寄存器:D123,D124),其报文如下:

 

开始

命令

首地址

位数

结束

和校验

STX

CMD

GROUP ADDRESS

BYTES

ETX

SUM

02h

30h

31h,30h,46h,36h

30h,34h

03h

37h,34h

 

 

 

 

 

根据三菱FX系列PLC编程口通信协议,地址算法:address=address*2+1000h

将地址123转换成十六进制为7Bh,因此首地址:

address=address*2+1000h=7Bh*2+1000h=10F6h

再转换成ASCII码为31h,30h,46h,36h

校验和SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H,溢出部分不计,故SUMH为“7”,SUML为“4”,相应的ASCII码为“37H”和“34H”。

 

PLC的应答报文格式如下:

 

STX

TAG:

wuguosheng的个人空间 引用 删除 wuguosheng   /   2008-09-14 09:40:33
段落还有些文字最好整理下,好看那样
zjh466的个人空间 引用 删除 zjh466   /   2008-09-12 15:58:04
谢谢
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-06  
    123
45678910
11121314151617
18192021222324
25262728293031

我的存档

数据统计

  • 访问量: 98
  • 日志数: 1
  • 建立时间: 2008-09-12
  • 更新时间: 2008-09-12

RSS订阅