三菱FX系列plc与pc机通讯(2)

发布时间:2021-06-08

三菱FX系列plc与pc机通讯

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

(5)传输过程

PC机与FX系列PLC之间采用应答方式通信,传输出错则组织重发。其传输过程如下: PLC根据PC机的命令,在每个循环扫描结束处的END语句后组织自动应答,无需用户在PLC一方编写程序。

4 利用VB6.0编写通信程序

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

命令报文中10F6H为D123的地址,04H表示要读入4个字节的数据。校验和SUM=30H+31H+30H+46H+36H+30H+34H+

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

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

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

(1)通信口初始化

Private Sub Initialize()

MSComm1.CommPort = 1

MSComm1.Settings = ″9600,E,7,1″

MSComm1.InBufferSize = 1024

MSComm1.OutBufferSize = 1024

MSComm1.InputLen = 0

MSComm1.InputMode = comInputModeText MSComm1.Handshaking = comNone

MSComm1.PortOpen = True

End Sub

(2)请求通信与确认

Private Function MakeHandShaking() As Boolean

Dim InPackage As String

MSComm1.OutBufferCount = 0

MSComm1.InBufferCount = 0

MSComm1.Output = Chr(&H5)

Do

DoEvents

Loop Until MSComm1.InBufferCount = 1

InPackage = MSComm1.Input

If InPackage = Chr(&H6) Then

MakeHandShaking = True

三菱FX系列plc与pc机通讯(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219