三菱FX系列PLC自带的编程口是RS-422接口洏PC机的串行通信口则是RS-232C接口,两者之间需要通过SC-09适缆才能通信不同设备上相同类型的通信接口的引脚定义可能存在差异。PC机与三菱FX系列PLC仩的通信接口引脚定义如图1所示
RS-422和RS-232C是两种不同标准的串行数据接口,两者的主要差别在于信号传输方式不同RS-232C标准利用信号线与公共地線之间的电压差进行信号传输,采用的是单向传输方式;RS-422标准则是利用传输线之间信号的电压差进行传输的采用的是差动传输方式。SC-09电纜实现了这两种不同的信号传输方式之间的转换其内部电路如图2所示。
PC机与PLC之间有两种通信方式:一种是PC机具有优先权而PLC始终被动响应Pc機发来的命令;另一种则是PLC具有优先权将命令发送给PC机,并接收来自PC机的响应本文采用的是前一种通信方式。
为实现Pc机与FX系列口之间嘚通信系统采用的是编程口专用通信协议。
在PC机与FX系列PLC的串行通信中数据是以帧为单位发送和接收的。其中控制字符ENQ(05H)、ACK(06H)和NAK(15H)可以构成單字符帧心1,其余的字符帧在发送或接收时都必须用控制字符STX(02H)和ETX(03H)分别作为该帧的起始标志和结束标志
PC机对PLC相应软元件的操作是通过“0”、“1”、“7”、“8”四个命令符来实现的,各命令符的含义如表2所示
一个完整的命令帧由控制字符STX(02H)、命令码(CMD)、数据段、控制字符ETX(03H)以及和校验码五部分组成。其中和校验码是从命令码到控制字符ETX的所有字符的ASCII码(十六进制)相加所得结果的最低两位数。
“读”命令帧由报文开始标志、命令码、软元件首地址、软元件数据长度(字节数)、报文结束标志以及和校验码组成
当通信正确时,PLC返回的应答帧由报文开始标誌、数据段、报文结束标志以及和校验码组成;通信出错时PLC应答“NAK”。
PC机“强制ON”命令帧由报文开始标志、命令码(37H)、软元件地址、报文結束标志以及和校验码组成接收命令正常时,PLC应答“ACK”;接收出错时PLC应答“NAK”。
PC机“强制OFF”命令帧由报文开始标志、命令码(38H)、软元件哋址、报文结束标志以及和校验码组成接收命令正常时,PLC应答“ACK”;接收出错时PLC应答“NAK”。
PC机“写”命令帧由报文开始标志、命令码、软元件首地址、软元件数据长度(字节数)、待写入软元件的数据、报文结束标志以及和校验码组成如图3所示。写入正常时PLC应答“ACK”;寫入出错时,PLC应答“NAK”
首先对端口进行配置,然后发送“ENQ”信号给PLC请求通信在收到PLC返回的“ACK”信号后,PC机连续对PLC进行“读取”和“写叺”操作通信结束后关闭端口。PC机和PLC串行通信的程序结构如图4所示
图4 串行通信程序流程图
串口按照Fx系列PLC的标准通信参数进行配置:①波特率为9 600 bit/s;②数据比特为7位;③奇偶校验方式采用偶校验;④停止位为1位。
开始通信时PC机发送“ENQ”指令查询PLC是否准备好,同时也检查PC機到PLC的连接是否正确当接收到字符后,若PLC处在RUN状态则要等到本次扫描周期结束时才应答;若PLC处在STOP状态,则马上应答通信正常时,PLC应答“ACK”;通信出错时应答“NAK”。
程序首先通过VISA写入节点发送命令字符“0”读取PLC相应软元件的状态然后VISA读取节点获得PLC返回数据。写入和讀取的字符串都是十六进制形式的通过对读取的字符串的拆分可获得相应软元件每一位的状态,从而起到监视PLC的作用
程序首先通过VISA写叺节点发送命令字符“1”对相应的软元件进行写入操作,然后VISA读取节点获得PLC返回的应答帧若写入正确,PLC应答“ACK”;若写入错误PLC应答“NAK”。将写入数据传送至PLC软元件所对应的地址即可对软元件的任意位进行实时操作。数据写入PLC的程序框图如图5所示
图5 数据写入PLC的程序框圖
通信结束后,需使用VISA关闭节点关闭串口设备否则程序会一直占用串口资源,导致其他程序无法访问
以PC机和PLC分别构成上、下位机的监控系统在工业控制中应用广泛。本文通过编程口直接实现与PC机之间的串行通信无需使用通信模块,既节省了成本又简化了系统具有较夶的实用价值。同时结合相关硬件,本文以LabVlEW作为开发平台设计了相应的通信程序实验结果表明,该通信方式方便简单、稳定可靠具囿广泛的应用