电工知识|PC与三菱FX系列PLC通信的实现

   更新日期:2017-03-25     来源:建材之家    作者:水电之家    浏览:51    评论:0    
核心提示:1.硬件连接 一台PC机可与一台或最多16台三菱FX系列plc通信,PC与PLC之间不能直接连接。如图1a、b为点对点结构的连接,图a中是通过FX-232AW单元进行RS-232C/RS-422转换与PLC编程口连接,图b中通过在PLC内部安装的通信功能扩展板FX-232-BD与PC连接;如图1c所示为多点结构的连接,FX-485-BD为安装在PLC内部的通信功能扩展板,FX-485PC-IF为R

沧州诚泽管道 管件行业的后起之秀

推荐简介:记者(张编辑)今日获悉   沧州诚泽管道有限公司位于“全国较大的压力管道装备制造业基地”河北省盐山县,占地面积68800平方米,建筑面积28800平方米,投资总额达一亿元,为华北地区重点管道生产企业。距天津新港一百公里,首都国际机场二百公里,交通十分便利。诚泽管道是一家为国内外石油、炼化、化工、冶金、电力、造船、输气、管道输送等行业提供高端产品与服务的专业制造商。公司技术力......
水电之家讯:1.硬件连接

一台PC机可与一台或最多16台三菱FX系列plc通信,PC与PLC之间不能直接连接。如图1a、b为点对点结构的连接,图a中是通过FX-232AW单元进行RS-232C/RS-422转换与PLC编程口连接,图b中通过在PLC内部安装的通信功能扩展板FX-232-BD与PC连接;如图1c所示为多点结构的连接,FX-485-BD为安装在PLC内部的通信功能扩展板,FX-485PC-IF为RS-232C和RS-485的转换接口。除此之外当然还可以通过其它通信模块进行连接,不再一一赘述。下面以PC与PLC之间点对点通信为例。

图1 PC与FX的硬件连接图

2.三菱FX系列PLC通信协议

PC中必须依据所连接PLC的通信规程来编写通信协议,所以我们先要熟悉FX系列PLC的通信协议。

1)数据格式

三菱 FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,比特率为9600 bps,字符为ASCⅡ码。数据格式如图2所示。

图2 数据格式

2)通信命令

三菱FX系列PLC有4条通信命令,分别是读命令、写命令、强制通命令、强制断命令,如表1所示。

表1 FX系列PLC的通信命令表

3)通信控制字符

FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如表2所示。

表2 FX系列PLC通信控制字符表

控制字符

ASCⅡ码

功能说明

ENQ

05H

PC发出请求

ACK

06H

PLC对ENQ的确认回答

NAK

15H

PLC对ENQ的否认回答

STX

02H

信息帧开始标志

ETX

03H

信息帧结束标志

注:当PLC对计算机发来的ENQ不理解时,用NAK回答。

4)报文格式

计算机向PLC发送的报文格式如下:

STX

CMD

数据段

ETX

SUMH

SUML

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

数据段格式与含义如下:

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

PLC向PC发的应答报文格式如下:

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

数据段:

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

5)传输规程

PC与FX系列PLC间采用应答方式通信,传输出错,则组织重发。其传输过程

如图3所示。

图3 传输过程

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

3.PC通信程序的编写

编写PC的通信程序可采用汇编语言编写,或采用各种高级语言编写,或采用工控组态软件,或直接采用PLC厂家的通信软件(如三菱的MELSE MEDOC等)

下面利用VB6.0以一个简单的例子来说明编写通信程序的要点。假设PC要求从PLC中读入从D123开始的4个字节的数据(D123、D124),其传输应答过程及报文如图4所示。

图4 传输应答过程及命令报文

命令报文中10F6H为D123的地址,04H表示要读入4个字节的数据。校验和SUM=30H+31H+30H+46H+36H+30H+34H+03 H=174H,溢出部分不计,故SUMH=7,SUAIL=4,相应的ASCⅡ码为“37H”,“34H”。应答报文中4个字节的十六进制数,其相应的ASCⅡ码为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

MSComml.OutBuffersize = 1024

MSComm1.InputLen = 0

MSComml.InputMode = comInputText

MSComm1.Handshaking = comNone

MSComm1.PortOpen = True

End Sub

2)请求通信与确认

Private Function MakeHandshaking()As Boolean

Dim InPackage As String

MSComml.OutBufferCount = 0

MSComml.InBufferCount = 0

MSComml.OutPut = Chr(&H5)

Do

DoEvents

Loop Until MSComml.InBufferCount = 1

InPackage = MSComml.Input

If InPackage = Chr(&H6) Then

MakeHandShaking = True

Else

MakeHandshaking = False

End If

End Function

3)发送命令报文

Private Sub Sendframe ()

Dim Outstring As String

MSComml.OutBufferCount = 0

MSComml.InBufferCount = 0

Outstrin = Chr(&H2)+″on″+″10F604″+Chr(&H3)+″74″

MSComml.Output = Outstring

End Sub

4)读取应答报文

Private Sub Receiveframe()

Dim Instring As String

Do

DoEvents

Loop Until MSComml.InBufferCount = 12

InString = MSComml.Inpult

End Sub

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管件
更多>同类水电电工资讯
0相关评论

推荐图文更多...
点击排行更多...
最新视频更多...
推荐产品更多...
老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 BYBC.CN SYSTEM All Rights Reserved
Powered by 电工之家