你现在位置:首页>技术论文>数据通讯>正文
利用VB的MSComm控件编程实现PC与三菱PLC FX系列通信
日期:2006-10-8 22:26:24 来源:PLC之家  
点击: 作者:未知
点击【】放大字体.

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

WWW_PLCJS@_COM%-PLC-技.术_网

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

WWcW_PLCJS_COM-PLC-技.术_网

 

WW.W_PLCJS_COM-PLC-技.术_网

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

图7-16  传输应答过程及命令报文

WWcW_PLCJS_COM-PLC-技.术_网

命令报文中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个字节。

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

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

WWW_PLCJS@_COM%-PLC-技.术_网

   1)通信口初始化

WWW_PLCJS_COM-PLC-技.术_网

    Private Sub Initialize()

WWW_PL※CJS_COM-PLC-技.术_网

    MSComm1.CommPort =1

WWW_PL※CJS_COM-PLC-技.术_网

    MSComm1.Settings = “9600,E,7,1”

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

    MSComm1.InBufferSize = 1024

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

    MSComml.OutBuffersize = 1024

WWW_PL※CJS_COM-PLC-技.术_网

    MSComm1.InputLen = 0

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

    MSComml.InputMode = comInputText

plcjs.技.术_网

    MSComm1.Handshaking = comNone

WWW_PLC※JS_COM-PmLC-技.术_网

    MSComm1.PortOpen = True

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

    End Sub

WWW_PLC※JS_COM-PmLC-技.术_网

    2)请求通信与确认

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

    Private Function MakeHandshaking()As Boolean

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

    Dim InPackage As String

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

    MSComml.OutBufferCount = 0

WWW_PL※CJS_COM-PLC-技.术_网

MSComml.InBufferCount = 0

WWW_PLC※JS_COM-PmLC-技.术_网

MSComml.OutPut = Chr(&H5)

WW.W_PLCJS_COM-PLC-技.术_网

Do

WWW_P※LCJS_COM-PLC-)技.术_网

DoEvents

WWW_PLCJS@_COM%-PLC-技.术_网

Loop Until MSComml.InBufferCount = 1

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

InPackage = MSComml.Input

WWW_PL※CJS_COM-PLC-技.术_网

If InPackage = Chr(&H6) Then

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

MakeHandShaking = True

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

Else

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

MakeHandshaking = False

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

End If

WWW.PLCJS.COM——可编程控制器技术门户

End Function

W1WW_P4LCJS_COM-PLC-技.术_网

3)发送命令报文

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

Private Sub SendFrame ()

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

Dim Outstring As String

plcjs.技.术_网

MSComml.OutBufferCount = 0

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

MSComml.InBufferCount = 0

WWW.PLCJS.COM——可编程控制器技术门户

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

WWW_PLCJS_COM-PLC-技.术_网

MSComml.Output = Outstring

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

End Sub

WWcW_PLCJS_COM-PLC-技.术_网

4)读取应答报文

WWW_P※LCJS_CO※M-PLC-技-.术_网

Private Sub ReceiveFrame()

WWW.PLCJS.COM——可编程控制器技术门户

Dim Instring As String

plcjs.技.术_网

Do

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

DoEvents

W1WW_P4LCJS_COM-PLC-技.术_网

Loop Until MSComml.InBufferCount = 12

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

InString = MSComml.Inpult

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

End Sub

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

评论内容
载入中...
相关文章
商城相关
相关下载
博客相关
论坛相关
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 
   深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce......
广州汇巨自动化设备有限公司 
   广州汇巨自动化设备有限公司是一家专业工业自动化产品和自动化设备开发、维修改造、电......
深圳联脉电子有限公司 
   公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监......
北京力天昭阳科技发展有限公司 
   北京力天昭阳科技发展有限公司(PekingPowerSkyScience&......
东莞市友诚自动化 
   本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20......
深圳市爱威轮实业有限公司 
   爱威轮实业对广大用户的技术支持与服务,贯穿于与客户接触的每一个环节中,渗透在每一......
·栏目热门排行
·站内热门排行
载入中。。
报告错误·关于我们· 用户帮助· 联系我们 · 友情链接· 本站服务 · 合作伙伴 · 版权声明· 招聘信息 · 投搞指南

迅闻自动化工程部声明如下:
旗下网站:PLC技术网(www.plcjs.com)-可编程控制器技术门户
网站备案号:粤ICP备17165530号
网站法律顾问:ITLAW-庄毅雄律师
法律保护:PLC技术网,迅闻电子,plcjs.com,plcjs.net,plcjs.cn等字样

Copyright 2010-2015. All rights reserved. 

51La