随着微电子及控制技术的不断发展,PLC已逐渐成为一种智能型、综合型控制器,由PLC构成的集散控制是现代工业控制的一个重要组成部分。PLC具有使用简单方便,故障率低,抗干扰能力强等优点;但同时,数据的计算处理与管理能力较弱,且无法提供良好的人机界面。将计算机与PLC结合起来,可使两者优势互补,充分利用计算机友好的人机界面,实现人机对话和监控功能,并可进行一定的辅助决策,组成高性能价格比的控制系统。实现计算机与PLC结合的控制系统的关键之一是二者之间的通信。
本设计选用三菱FX2N系列的PLC,以Visualc++6.0作为开发工具对PLC通讯主程序进行设计,串口通讯采用ActiveX控制Microsoft CommunicationControl 6.0,后用PLC编程电缆将PLC编程口与计算机串口连接进行调试。
1三菱PLC与计算机之间通信协议
串行通信是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。“串行”是指外设与接口电路之间的信息传送方式,CPU与接口之间仍按并行方式工作。串行通信的四个重要参数:波特率(衡量通信速度的参数)、奇偶校验位(一种简单的检错方式)、数据位(衡量通信中实际数据位的参数)和停止位(表示单个数据包的后一位)。
(1)三菱FX2N系列通信数据帧格式
FX2N系列的PLC与计算机之间的通信采用RS-232C标准,其传输速率一般设为9 600bps,实际传输过程还可设其它,比如115 200bps等。奇偶校验位采用偶校验。数据以帧为单位发送和接收。一个多字符帧由起始字元、命令号码、元件首地址、结束字元、和校验五部分组成,其中和校验值是将命令码STX—ETX之间的字符的ASCII码(十六进制数)相加,取得所得和的低二位数。STX和ETX分别表示该字符帧的起始标志和结束标志。
起始字元(STX):ASCII码的起始字元STX对应的16进制数位0x02。无论命令信息还是回应信息,它们的起始字元均为STX,接收方以此来判知传输资料的开始;
命令号码:为两位16进制数。所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等。在回应信息中,下位机会将上位机接收到的命令号码随同其它信息一同发送给上位机;
元件首地址:对应要操作的元件的相应的地址。如从D123单元中读取数据时,要把它对应的地址:0x10F6发送给PLC;
元件个数:一次读取位元件或字元件的数量;
结束字元(ETX):ASCII码的结束字元ETX对应的16进制数为0x03。无论命令信息还是回应信息,它们的结束字元均为ETX,接收方以此来判知此次通讯已结束;
校验码(Checksum):校验码是将STX—ETX之间的ASCII字元的16进制数值以"LRC(LongitudinalRedundancyCheck)"法计算出1个Byte长度(两个16进制数值00-FFH)的校验码。当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正确。
(2)三菱FX2N系列通信命令
FX2N系列PLC有4个通信命令,它们是读命令(30H)、写命令(31H)、强制通命令(37H)、强制断命令(38H)。
(3)三菱FX2N系列通信控制字符
ENQ(ASCII代码05H):计算机向PLC发送请求;
ACK(ASCII代码06H):PLC对ENQ的确定回答;NAK(ASCII代码15H):PLC对ENQ的否认回答;
STX(ASCII代码02H):报文开始;
ETX(ASCII代码02H):报文结束。
(4)FX2N系列设备地址
①读写时的软设备地址
S0-S7:0000H;X0-X7:0080H;Y0-Y7:00AOH;TO-T7:00COH;M0-M7:0100H;CO-C7:01COH;DO-D7:1000H
②置位/复位时的软设备地址
S0-S7:0000H;X0-X7:0400H;Y0-Y7:0500H;TO-T7:0600H:MO-M7:0800H;CO-C7:0E00H;DO-D7:0100H
③传输过程
PC机与FX系列PLC之间采用应答方式通信,传输出错则组织重发。其传输过程如图1所示。

图1传输过程
PLC根据PC机的命令,在每个循环扫描结束处的END语句后组织自动应答,无需用户在PLC一方编写程序。
2 系统功能设计
系统主要实现PLC与计算机的通讯,具体主要完成PC机指令下传、监测PLC状态、接收PLC信息等功能。系统组成:小型PLC一台、RS232串口、编程电缆、通讯界面。主操作界面在完成系统功能的前提下,力求明了直观,操作简单灵活方便。系统以VC++6.0为平台,设计的界面如图2所示。

图2 系统界面
西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商