你现在位置:首页>技术论文>经验技巧>三菱PLC>正文
三菱FX系列plc与pc机通讯
日期:2010-9-6 10:59:05 点击:
来源:网络
作者: 未知
点击【】放大字体.

1 前言

WWW_PL※CJS_COM-PLC-技.术_网

PLC以卓越的可靠性和方便的可编程性广泛应用于工业控制领域。实现PC机与PLC通信的目的是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表显示、窗口技术等多种功能,为PLC提供良好的人机界面。本文详细介绍了FX系列PLC的通信协议,并在Windows环境下,使用VB6.0开发通信程序,实现了PC机与FX系列PLC之间的串行通信。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

2 PC机与PLC实现通信的条件
plcjs.技.术_网

带异步通信适配器的PC机与PLC只有满足如下条件,才能互联通信:
W1WW_P4LCJS_COM-PLC-技.术_网

(1)带有异步通信接口的PLC才能与带异步通信适配器的PC机互联。还要求双方采用的总线标准一致,否则要通过“总线标准变换单元”变换之后才能互联。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

(2)双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。
plcjs.技.术_网

(3)要对PLC的通信协议分析清楚,严格地按照协议的规定及帧格式编写PC机的通信程序。PLC中配有通信机制,一般不需用户编程。
WWW_PL※CJS_COM-PLC-技.术_网

3 PC机及与FX系列PLC的串行通讯
WWW_P※LCJS_COM-PLC-)技.术_网

3.1 硬件连接
WW.W_PLCJS_COM-PLC-技.术_网

PC机与FX系列PLC不能直接连接,要经过FX-232AW单元进行RS232C/RS-422的变换,下图表示了它们之间的连接关系:
WW.W_PLCJS_COM-PLC-技.术_网

3.2 FX系列PLC的通信协议

P.L.C.技.术.网——可编程控制器技术门户

在PC机中必须依据互联的PLC的通信协议来编写通信程序,因此先介绍FX系列PLC的通信协议。
WWW_PLCJS_COM-PLC-技.术_网

(1)数据格式
WW.W_PLCJS_COM-PLC-技.术_网

FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,波特率为9600bps,字符为ASCII码。格式如下:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

(2)通信命令

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

FX系列PLC有4个通信命令,它们是读命令、写命令、强制通命令、强制断命令,如下表所示。表中X—输入继电器;Y—输出继电器;M—辅助继电器;S—状态元件;T—定时器;C—计数器;D—数据寄存器。
WWW.PLCJS.COM——可编程控制器技术门户

(3)通信控制字符

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如下表所示。
WWW.PLCJS.COM——可编程控制器技术门户

*当PLC对PC机发来的ENQ不理解时,用NAK回答。

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

(4)报文格式
P.L.C.技.术.网——可编程控制器技术门户

PC机向PLC发送的报文格式如下:
W1WW_P4LCJS_COM-PLC-技.术_网

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

WW.W_PLCJS_COM-PLC-技.术_网

数据段格式与含义如下:
WWW.PLCJS.COM——可编程控制器技术门户

*写命令的数据段有数据,读命令的数据段则无数据。

plcjs.技.术_网

读/写字节数为01H~40H(1~64)个。
WWcW_PLCJS_COM-PLC-技.术_网

PLC向PC机发送的应答报文格式如下:
WWW_PL※CJS_COM-PLC-技.术_网

*对读命令的应答报文数据段为要读取的数据,一个数据占两个字节,分上位下位:

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

对写命令的应答报文无数据段,而用ACK及NAK作为应答内容。

WW.W_PLCJS_COM-PLC-技.术_网

(5)传输过程
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

PC机与FX系列PLC之间采用应答方式通信,传输出错则组织重发。其传输过程如下:
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

PLC根据PC机的命令,在每个循环扫描结束处的END语句后组织自动应答,无需用户在PLC一方编写程序。

WWW_PLCJS_COM-PLC-技.术_网

4 利用VB6.0编写通信程序
P.L.C.技.术.网——可编程控制器技术门户

下面以一个简单的例子来说明编写通信程序的要点。假设PC机要求从PLC中读入从D123开始的4个字节的数据(D123,D124),其传输应答过程及报文如下(图略可向作者索取):
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

命令报文中10F6H为D123的地址,04H表示要读入4个字节的数据。校验和SUM=30H+31H+30H+46H+36H+30H+34H+
WWW_PLC※JS_COM-PmLC-技.术_网

03H=174H,溢出部分不计,故SUMH为'7',SUML为‘4’,相应的ASCII码为“37H”,“34H”。应答报文中4个字节的十六进制数,其相应的ASCII码为8个字节,故应答报文长度为12个字节。
WWW_PLCJS_COM-PLC-技.术_网

根据PC机与FX系列PLC的传输应答过程编制出如下所示的通信程序流程图略。
WWW_PLCJS_COM-PLC-技.术_网

利用VB的MSComm控件,按照流程图可以编写如下通信程序实现PC机与FX系列PLC之间的串行通信以完成数据的读取。MSComm控件可以采用轮询或事件驱动的方法从端口获取数据。在这个例子中使用了轮询方法。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

(1)通信口初始化
——可——编——程——控-制-器-技——术——门——户

Private Sub Initialize()
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

MSComm1.CommPort = 1
WWW_P※LCJS_COM-PLC-)技.术_网

MSComm1.Settings = ″9600,E,7,1″
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

MSComm1.InBufferSize = 1024
WW.W_PLCJS_COM-PLC-技.术_网

MSComm1.OutBufferSize = 1024
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

MSComm1.InputLen = 0
P.L.C.技.术.网——可编程控制器技术门户

MSComm1.InputMode = comInputModeText
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

MSComm1.Handshaking = comNone
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

MSComm1.PortOpen = True
WW.W_PLC※JS_C,OM-PL,C-技.术_网

End Sub
W1WW_P4LCJS_COM-PLC-技.术_网

(2)请求通信与确认
W1WW_P4LCJS_COM-PLC-技.术_网

Private Function MakeHandShaking() As Boolean
WWcW_PLCJS_COM-PLC-技.术_网

Dim InPackage As String
WWW_PLCJS@_COM%-PLC-技.术_网

MSComm1.OutBufferCount = 0
WW.W_PLC※JS_C,OM-PL,C-技.术_网

MSComm1.InBufferCount = 0
——可——编——程——控-制-器-技——术——门——户

MSComm1.Output = Chr(&H5)
WW.W_PLC※JS_C,OM-PL,C-技.术_网

Do
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

DoEvents
plcjs.技.术_网

Loop Until MSComm1.InBufferCount = 1
plcjs.技.术_网

InPackage = MSComm1.Input
WWW_PL※CJS_COM-PLC-技.术_网

If InPackage = Chr(&H6) Then
W1WW_P4LCJS_COM-PLC-技.术_网

MakeHandShaking = True
WWW_PLCJS@_COM%-PLC-技.术_网

Else
WWW_PL※CJS_COM-PLC-技.术_网

MakeHandShaking = FalseEnd If
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

End Function
——可——编——程——控-制-器-技——术——门——户

(3)发送命令报文
P.L.C.技.术.网——可编程控制器技术门户

Private Sub SendFrame()
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

Dim OutString As String
WWW_PLC※JS_COM-PmLC-技.术_网

MSComm1.OutBufferCount = 0
WWW_PL※CJS_COM-PLC-技.术_网

MSComm1.InBufferCount = 0
WWW_P※LCJS_CO※M-PLC-技-.术_网

OutStrin = Chr(&H2)+″0″+″10F604″+Chr(&H3)+″74″
WWW_PLC※JS_COM-PmLC-技.术_网

MSComm1.Output = OutString
WWcW_PLCJS_COM-PLC-技.术_网

End Sub
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

(4)读取应答报文
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Private Sub ReceiveFrame()
WW.W_PLC※JS_C,OM-PL,C-技.术_网

Dim InString As String
WWW_PLCJS@_COM%-PLC-技.术_网

Do
WW.W_PLC※JS_C,OM-PL,C-技.术_网

DoEvents
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

Loop Until MSComm1.InBufferCount = 12
WWW_PLCJS@_COM%-PLC-技.术_网

InString = MSComm1.Input
P.L.C.技.术.网——可编程控制器技术门户

End Sub
P.L.C.技.术.网——可编程控制器技术门户

5 结束语
W1WW_P4LCJS_COM-PLC-技.术_网

以本文所述机制编写的通信程序已成功用于以FX2N型PLC作为主控制器的高层建筑玻璃幕墙清洗机器人系统中,通过该通信程序,实现了PC机对PLC的监视和控制。同时,本程序对PC机与其它型号PLC之间的通信也有一定的借鉴意义。 
——可——编——程——控-制-器-技——术——门——户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行