您的位置:首页 > 编程语言

三菱PLC和PC机通过编程口串行通信实现

2015-05-23 00:22 429 查看
1 系统硬件构成

三菱FX系列PLC自带的编程口是RS-422接口,而PC机的串行通信口则是RS-232C接口,两者之间需要通过SC-09适配电缆才能通信。不同设备上相同类型的通信接口的引脚定义可能存在差异。PC机与三菱FX系列PLC上的通信接口引脚定义如图1所示。



图1 接口引脚定义

RS-422和RS-232C是两种不同标准的串行数据接口,两者的主要差别在于信号传输方式不同。RS-232C标准利用信号线与公共地线之间的电压差进行信号传输,采用的是单向传输方式;RS-422标准则是利用传输线之间信号的电压差进行传输的,采用的是差动传输方式。SC-09电缆实现了这两种不同的信号传输方式之间的转换,其内部电路如图2所示。



图2 SC-09电缆内部电路

2 通信协议

PC机与PLC之间有两种通信方式:一种是PC机具有优先权而PLC始终被动响应Pc机发来的命令;另一种则是PLC具有优先权,将命令发送给PC机,并接收来自PC机的响应。本文采用的是前一种通信方式。

为实现Pc机与FX系列PLC编程口之间的通信,系统采用的是编程口专用通信协议。

2.1 控制字符

在PC机与FX系列PLC的串行通信中,数据是以帧为单位发送和接收的。其中,控制字符ENQ(05H)、ACK(06H)和NAK(15H)可以构成单字符帧心1,其余的字符帧在发送或接收时都必须用控制字符STX(02H)和ETX(03H)分别作为该帧的起始标志和结束标志。

各控制字符的意义如表1所示。

表1 控制字符意义



2.2 命令代码

PC机对PLC相应软元件的操作是通过“0”、“1”、“7”、“8”四个命令符来实现的,各命令符的含义如表2所示。

表2 命令字符含义



2.3 命令帧

一个完整的命令帧由控制字符STX(02H)、命令码(CMD)、数据段、控制字符ETX(03H)以及和校验码五部分组成。其中,和校验码是从命令码到控制字符ETX的所有字符的ASCII码(十六进制)相加所得结果的最低两位数。

①PC机“读”命令帧

“读”命令帧由报文开始标志、命令码、软元件首地址、软元件数据长度(字节数)、报文结束标志以及和校验码组成。

当通信正确时,PLC返回的应答帧由报文开始标志、数据段、报文结束标志以及和校验码组成;通信出错时,PLC应答“NAK”。

②PC机“强制ON”命令帧

PC机“强制ON”命令帧由报文开始标志、命令码(37H)、软元件地址、报文结束标志以及和校验码组成。接收命令正常时,PLC应答“ACK”;接收出错时,PLC应答“NAK”。

③PC机“强制OFF”命令帧

PC机“强制OFF”命令帧由报文开始标志、命令码(38H)、软元件地址、报文结束标志以及和校验码组成。接收命令正常时,PLC应答“ACK”;接收出错时,PLC应答“NAK”。

④PC机“写”命令帧

PC机“写”命令帧由报文开始标志、命令码、软元件首地址、软元件数据长度(字节数)、待写入软元件的数据、报文结束标志以及和校验码组成,如图3所示。写入正常时,PLC应答“ACK”;写入出错时,PLC应答“NAK”。



图3 “写”命令帧

3 LabVIEW程序设计

在LabVlEW编程中,系统利用虚拟仪器软件规范VISA(virtual instrument software architecture)实现串行通信。VISA本身并不具有仪器编程能力,它通过调用相应设备驱动器的高层应用程序编程接口(API)进行编程。

首先对端口进行配置,然后发送“ENQ”信号给PLC请求通信,在收到PLC返回的“ACK”信号后,PC机连续对PLC进行“读取”和“写入”操作,通信结束后关闭端口。PC机和PLC串行通信的程序结构如图4所示。



图4 串行通信程序流程图

3.1 串口初始化

串口按照Fx系列PLC的标准通信参数进行配置:①波特率为9 600 bit/s;②数据比特为7位;③奇偶校验方式采用偶校验;④停止位为1位。

3.2 请求通信

开始通信时,PC机发送“ENQ”指令查询PLC是否准备好,同时也检查PC机到PLC的连接是否正确。当接收到字符后,若PLC处在RUN状态,则要等到本次扫描周期结束时才应答;若PLC处在STOP状态,则马上应答。通信正常时,PLC应答“ACK”;通信出错时,应答“NAK”。

3.3 读取PLC软元件状态

程序首先通过VISA写入节点发送命令字符“0”读取PLC相应软元件的状态,然后VISA读取节点获得PLC返回数据。写入和读取的字符串都是十六进制形式的。通过对读取的字符串的拆分可获得相应软元件每一位的状态,从而起到监视PLC的作用。

3.4 数据写入PLC软元件

程序首先通过VISA写入节点发送命令字符“1”对相应的软元件进行写入操作,然后VISA读取节点获得PLC返回的应答帧,若写入正确,PLC应答“ACK”;若写入错误,PLC应答“NAK”。将写入数据传送至PLC软元件所对应的地址,即可对软元件的任意位进行实时操作。数据写入PLC的程序框图如图5所示。



图5 数据写入PLC的程序框图

3.5 关闭串口

通信结束后,需使用VISA关闭节点关闭串口设备,否则程序会一直占用串口资源,导致其他程序无法访问。

4 结束语

以PC机和PLC分别构成上、下位机的监控系统在工业控制中应用广泛。本文通过编程口直接实现三菱PLC与PC机之间的串行通信,无需使用通信模块,既节省了成本又简化了系统,具有较大的实用价值。同时,结合相关硬件,本文以LabVlEW作为开发平台设计了相应的通信程序。实验结果表明,该通信方式方便简单、稳定可靠,具有广泛的应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: