您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > VB与台达触摸屏通信的实现
VB与台达触摸屏通信的实现中达电通股份有限公司中达电通PLC产品处王乃全摘要:本文重点讨论MODBUSASCII通信协议及通过VB如何实现与台达触摸屏的通信。对于VisualBasic6编程语言亦有简要的介绍。关键词:VisualBasicMODBUSASCIIHMI1引言在自动化工程集成中经常遇到VB与触摸屏通信问题。对于不同的MODBUS通信协议触摸屏产品,无论是通信协议和VB中的编程原理都是一样的,所不同的仅是MODBUS在PLC和HMI中的地址映射不一样。为了集中解决这个问题,本文以台达触摸屏通讯案例为背景,采用了一个比较简单的实例描述如何建立双方的通信,不涉及到更为复杂的VB与HMI的操作和编程技巧。2串行通信基本概念2.1通信的种类通常通信的形式可以分为两种,并行通信(ParallelCommunication)和串行通信(SerialCommunication)。所谓并行,既是一次传输量为8位;而串行一次只传1位。这两种不同的通信模式如图1所示。2.2串行通信常用的串行通信也有两种,分别位RS-232和RS-485。(1)RS-232通讯。RS-232的信号准位乃是参考地线而来的,如图2所示,传输端参考接地端1来传送数据;接收端则参考接地端2还原出传送端的信号准备。由图2可知,由于两个接地端准位不一定一样,而且很容易受到干扰,所以信号在RS-232线路传输时,很容易产生错误。(2)RS-485通讯。RS-485的信号传输方式如图3所示。RS-485的信号将被传送出去时会分成正负两条线路,当到达接收端后,在将信号相减还原成原来的信号;如果将原始的信号表示成(DT),而被分成的信号分别标示成(D+)及(D-),则DT=(D+)-(D-)同样地,接收端在接收到信号后,也依据上式还原成原来的样子。如果线路受到干扰,两条线路的信号分别为(D+)+Noise(D-)+Noise。接收端还原信号为(DT)=[(D+)+Noise]-[(D-)+Noise]与先前结果一样,所以RS-485可以有效的防止噪声的干扰。3VisualBasic控件VB是微软的窗口软件,提供了很多接口成员。对象、属性、事件、方法就是四个重要的接口。3.1卷标控件此控件专用于显示文字,数字用,显示如图4所示。3.2按钮控件此控件使用率很高,提供一个供系统用户操作用的按钮,如图5所示。3.3定时器控件此控件的最大作用在于固定的时间内会执行所设置的程序代码一次,如图6所示。VB还提供了大量的控件,在此不一一叙述。3.4MScomm控件要完成VB与PLC等串行设备的通信,MScomm控件是一个很好用的控件。所以在此有必要对MScomm控件做一个较为详细的说明。MScomm非标准控件,要手动添加,步骤如下:选择菜单的【工程】;选择【部件】;在弹出的对话框中做如图选择,在部件选项卡就会出现MScomm控件,如图7所示。MScomm控件基本属性如图8所示。4MODBUSASCII通讯协议(案例)Modbus总线通讯协议分为ASCII和RTU两种。ASCII采用的格式和校验相对简单,本文采用ASCII格式,并仅对使用的功能码进行说明,更多的信息,请参看协议的详细说明。4.1通信格式STX起始字符“:”(3AH)ADR1通信地址(站号)采用2个字符ADR0CMD1功能码。采用2个字符CMD0DATA(0)数据项DATA(1)……….DATA(n-1)LRCCHK1LRC校验码。采用2个字符LRCCHK0END1结束字符。采用2个字符。END1=CR(0DH),END0=LF(0AH)4.2LRC算法ADRH+CMDH+DATAH,然后取2的补码4.3功能码05,写入线圈格式例子(十六进制)字头3A站号01功能码05地址0500写入状态FF00LRC码F601,读线圈状态格式例子(十六进制)字头3A站号01功能码01起始地址0614读取数目0025LRC码BF06,写入单个字寄存器格式例子(十六进制)字头3A站号01功能码06寄存器地址0600写入的资料1234LRC校验码AD5VB与台达HMI通信的实现(案例)5.1控制要求(1)PC能控制HMI中某个位地址的启动、停止。(2)在HMI上对某个内部寄存器进行数值修改操作,在PC上能同步显示。5.2设计思路(1)PC控制的内部地址为$2000.0,查看映射表,知道为MODBUS地址为B00001。在PC上按功能码05操作。(2)HMI上写入的寄存器地址为$0,查看映射表,知道为MODBUS地址为W40001。在PC上按功能码03操作。HMI内部地址与MODBUS地址映射表MODBUSADDRESSHMIADDRESS描述W40001~W41024$0~$1023内部寄存器W42001~W43024$M0~$M1023断电保持内部寄存器W44001RCPNO配方编号寄存器W45001~……..RCP0~RCPn配方寄存器B00001~B01024$2000.0~$2063.15内部寄存器(bit)B01025~B02048$M200.0~$M263.15断电保持内部寄存器(bit)5.3VB接口的设计用按钮控制$2000.0的启动停止;用timer组件不停的读取$0的显示值(十六进制显示,可以转换为十进制);用MScomm控件实现PC与PLC的通信。5.4代码构成(1)LRC算法校验的实现:PublicFunctionLRC(strAsString)AsStringc=0l=Len(str)Forc=c+1Tolc_data=Mid$(str,c,2)d_lrc=d_lrc+Val(&H+c_data)c=c+1NextcIfd_lrc&HFFThend_lrc=d_lrcMod&H100EndIfh_lrc=Hex(&HFF-d_lrc+1)IfLen(h_lrc)2Thenh_lrc=Mid(h_lrc,Len(h_lrc)-1,2)EndIfLRC=h_lrcEndFunction(2)读取$0,也就是W40001数值:PrivateSubTimer1_Timer()MSComm1.Output=:+010300000001+LRC(010300000001)+Chr$(13)+Chr$(10)'MSComm1.Output=:+00050500FF00+LRC(00050500FF00)+Chr$(13)+Chr$(10)inputstring=MSComm1.InputText1.Text=Mid(inputstring,8,4)EndSub(3)控制$2000.0ON:PrivateSubCommand1_Click()MSComm1.Output=:+00050000FF00+LRC(00050000FF00)+Chr$(13)+Chr$(10)EndSub(4)控制$2000.0OFF:PrivateSubCommand2_Click()MSComm1.Output=:+000500000000+LRC(000500000000)+Chr$(13)+Chr$(10)EndSub(5)HMI中的程序与设置如图9所示(要注意【人机站号】与【控制器】的设置):6结束语VB语言使用的简易为众多工程技术人员与串行设备的通信提供了很大的方便。台达触摸屏采用标准的MODBUS协议,这一协议目前广为流行,为大家所熟知,也为大家最终实现通信提供了简化的平台。由于台达所有的机电产品都支持MODBUS协议,所以,掌握了VB与触摸屏通信过程,也就等于掌握了PC与台达所有机电产品的通信。参考文献[1]VB与RS-232通信实例.[2]VB6从入门到精通.[3]DOP系列人机界面应用技术手册.[4]DVP-Protocal.
本文标题:VB与台达触摸屏通信的实现
链接地址:https://www.777doc.com/doc-2865718 .html