台达PLC通讯调试方法.doc_第1页
台达PLC通讯调试方法.doc_第2页
台达PLC通讯调试方法.doc_第3页
台达PLC通讯调试方法.doc_第4页
台达PLC通讯调试方法.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

台达PLC通讯调试方法。台达PLC出厂通讯格式为,ASCII,9600,7,E,1,支持功能码03H,06H,10H,如用串口调试程序向PLC(站号为1)的D0写H1770,ASCII字符为: “: 010610001770620d0a”应在串口调试程序中写入的16进制代码为: 3A 30 31 30 36 31 30 30 30 31 37 37 30 36 32 0D 0A 注意阿ASCII模式下 字符0对应16进制30H,1对应16进制31H ,依次类推.你的串口协议是对的,与PLC的默认协议完全相符,PLC不用再作协议设定。 你发送的数据中有几个错误:1、尾码不是0A0D,而应是0D0A。2、16进制数据与ASCII码混在了一起,010104000010是ASCII码,应全部转换为16进制。正确的字符串数据是=:+0101040010+LRC码(EA)+CR(0D)+LF(0A)转换为16进制=3A3031303130343030313045410D0A,你把引号内的内容复制到你的串口调试软件中,按16进制发送试试。我已经试过了,返回数据是=:01810777 (3A 30 31 38 31 30 37 37 37 0D 0A) 我是一个PLC初学者,在MicroProgrammableLogicControllerFC4A使用手册中,遇到一个问题:在172中电缆线连接器脚位表格下,有一个“注:准备连接埠1的电缆显示,请不要插入第6和7针。如果第6和7针连接在一起,便无法使用使用者通讯。”但是现在所配制的电缆就是第6和7针之间的电阻值接近于0。在WindLDR中,简单输入输出和定时、计数器可以编程并下载到PLC中正常运行,在使用TXD和RXD指令时按照手册中所述进行梯形图编程时,无法运行,接收状态码显示15,无法进行串行通讯。我用1:1进行PC对PLC通讯.用pc控制plc原理上是一样的,你只要先将pc得端口初始化为和plc一样的通讯协议,然后往plc相对应的地址写数就好了。不过,这时候plc地址就不是dxxx/mxxx他们对应的地址如下: S S0 S1028 0000H03FFH Bit X X0X377(Octal) 0400H04FFH Bit Y Y0Y377(Octal) 0500H05FFH Bit T T0T255 0600F06FFH Bit/Word M M0M4095 0800HB9FFH Bit D D0D9999 1000HA70FH Word C C0C199 0E00H0EC7H Bit/Word C C199C255 0EC8H0EFFH Bit/Dword 台达的地址都是开放的,除了d1000-d1999/m1000-m1999中间有些地址是唯读的,大家不能修改外,其余应该都没问题,如果控制不了,可能是是地址错了。2)功能码4.2 VB与PLC通信的实现以下举例说明现场设备与PLC通信的实现。1)控制要求:控制PLC的起动、停止,并显示运行状态(绿色为运行,红色为停止);能够用交替型按钮控制Y0,Y1,并用指示灯显示Y0,Y1状态(绿色为运行,红色为停止);能够对D256,D512两个寄存器进行数值写入的操作。2)实现思路:PLC起动停止的标志位为M1072,查DVP协议,知道地址为H0C30,按功能码01操作; 同样Y0,Y1的地址分别为H0500,H0501。写入FF00为ON,0000为OFF,按功能码05操作;D256,D512地址分别为H1100,H1200,按功能码06操作即可。3)VB接口的设计如图10所示。图10 监控程序界面用按钮控制PLC的起动停止,Y0、Y1的ON/OFF及D256、D512写完数据的发送;用Shape组件做指示灯,表示PLC的运行状态和Y的状态;用timer组件不停的读取M1072的状态,以判断PLC的运行情况;用MScomm控件实现PC与PLC的通信。4)编程实现的代码构成(1) LRC算法校验的实现Public Function LRC(str As String) As Stringc = 0l = Len(str) For c = c + 1 To lc_data = Mid$(str, c, 2) d_lrc = d_lrc + Val(&H + c_data)c = c + 1Next cIf d_lrc &HFF Thend_lrc = d_lrc Mod &H100End Ifh_lrc = Hex(&HFF - d_lrc + 1)If Len(h_lrc) 2 Thenh_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)End IfLRC = h_lrcEnd Function(2) 运行的开始就判断PLC的状态并设置标志位Rem 初次运行打开串口,并显示PLC运行状态Private Sub Form_Load()Dim s1 As StringDim s2 As StringDim s22 As StringDim s3 As StringDim s4 As StringMSComm1.PortOpen = Trues2 = 01010C300001s22 = LRC(s2)s1 = : + s2 + s22 + Chr$(13) + Chr$(10)MSComm1.Output = s1s3 = MSComm1.Inputs4 = Mid$(s, 6, 8)If s4 = 0C30FF00 Thenplc = 1 Rem PLC为运行标志Elseplc = 0 Rem PLC为停止标志End IfEnd Sub(3) 下面一段为用指示灯表示PLC的运行状态Private Sub Timer5_Timer()Dim s1 As StringDim s2 As StringDim s22Dim s3 As StringDim s4 As Strings2 = 01010C300001s22 = LRC(s2)s1 = : + s2 + s22 + Chr$(13) + Chr$(10)MSComm1.Output = s1s3 = MSComm1.Inputs4 = Mid$(s3, 8, 2)If s4 = 31 Thenplc = 1 Rem PLC为运行标志Else: If s4 = 30 Then plc = 0 Rem PLC为停止标志End IfIf plc = 1 ThenLabel2.Caption = PLC正在运行.Shape1.FillColor = RGB(0, 255, 0) Rem greenElseLabel2.Caption = PLC已经停止Shape1.FillColor = RGB(255, 0, 0) Rem redEnd IfEnd Sub(4) PLC的起动与停止Rem 起动PLCPrivate Sub start_Click()Dim strout As StringTimer5.Enabled = Falsestr = 00050C30FF00 Rem M1072 为PLC起动停止标志位。查地址表,M1072为OC30.FF00为置ON,0000为置OFF。Rem 以上都是固定格式,要牢记。LRCC = LRC(str) Rem 计算 str的lrc校验码。strout = : + str + LRCC + Chr$(13) + Chr$(10) Rem 欲传送之数据。13为D,10为AMSComm1.Output = stroutTimer5.Enabled = TrueEnd SubRem 停止PLCPrivate Sub stop_Click()Dim strout As StringTimer5.Enabled = Falsestr = 00050C300000LRCC = LRC(str)strout = : + str + LRCC + Chr$(13) + Chr$(10)MSComm1.Output = stroutTimer5.Enabled = TrueEnd SubY0、Y1的ON/OFF与PLC起动/停止的控制方式相同,指示灯的表示方式也相同。D256,D512数据写入的操作类似,限于篇幅其它代码就不再列出了。5 结束语VB语言易于编程使用,为与串行设备的通信提供了很大的方便。台达PLC采用标准的目前广为流行的MODBUS协议,为实现PLC与监控计算机的通信提供了简化的平台。由于台达所有的机电产品都支持MODBUS协议,所以,掌握了VB与PLC通信过程,也就等于掌握了PC与台达所有机电产品的通信3A 30 31 30 35 30 35 30 30 46 46 30 30 46 36 0D 0A十六进制:01 05 00 FF 00+(LRC)+(结束)3A 30 31 30 35 30 38 30 30 46 46 30 30 46 33 0D 0A -将M0置为ON3A 30 31 30 35 30 38 30 30 30 30 30 30 46 32 0D 0A -将M0置为OF3A 30 31 30 31 30 35 30 30 46 39 0D 0A3A 30 31 30 31 30 35 30 30 30 30 30 31 46 38 0D 0A3A 30 31 30 31 30 38 30 30 30 30 30 33 46 33 0D 0A-查询多个位的状态(查M0、M1、M2的状态,返回值:3A 30 31 30 31 30 31 30 35 46 38 D A(十六进制::01010105F8)结果是05,也就是M0、M2=ON,M1=OF(二进制)2 Modbus功能代码共有三种类型分别为: 公共功能代码 已定义好的功能码,保证其唯一性,由M认可。 用户自定义功能代码 有两组,分别为6572和100110,不需要认可,但不保证代码使用的唯一性,如想变为公共代码,需要RFC认可。 保留的功能代码 由某些公司使用在某些传统设备的代码,不可作为公共用途。常用公共功能代码见表2。常用公共功能代码功能码十进码子码十六进制位操作开关量输入读输入点0202内部位或开关量输出读线圈0101写单个线圈0505写多个线圈150F16位操作模拟量输入读输入寄存器0404内部寄存器或输出寄存器(模拟量输出)读多个寄存器0303写单个寄存器0606写多个寄存器1610读/写多个寄存器2317屏蔽写寄存器2216文件记录读文件记录20614封装接口写文件记录21615读设备标识43142B表2 常用公共功能代码功能代码划按应用深浅分,可分为三个类别:(1) 类别0,对于客户机/服务器最小的可用子集。 读多个保持寄存器(fc.3); 写多个保持寄存器(fc.16)。(2) 类别1,可实现基本互易操作的常用代码。 读线圈(fc.1); 读开关量输入(fc.2); 读输入寄存器(fc.4); 写线圈(fc.5); 写单一寄存器(fc.6)。(3) 类别2,用于人机界面、监控系统的例行操作和数据传送功能。 强制多个线圈(fc.15); 读通用寄存器(fc.20); 写通用寄存器(fc.21); 屏蔽写寄存器(fc.22); 读写寄存器(fc.23)。3 Modbus应用举例:读寄存器请求 功能码 1字节 0x03起始地址 2字节 0x0000到0xFFFF寄存器数 2字节 1到125(0x7D)应答 功能码 1字节 0x03字节数 1字节 2 x N寄存器的值 N x 2字节(N为寄存器的数量)出错 出错码 1字节 0x83例外码 1字节 01或02或03或044 Modbus TCP 请求报文举例,见表3。表3描述大小(字节)示例备注MBAP传输标志Hi10x15传输标志用于和应答配合使用传输标志Lo10x01每对传输使用唯一的标志协议标志20x0000该域可用作寻址Modbus/Modbus+子网络的路由,这时,此值含有目的设备的地址长度20x0006单元标志20xFFModbus请求功能代码10x03读寄存器起始地址20x0005寄存器数20x00015 Modbus TCP客户端的实现用Connect( )命令建立对目标设备TCP502端口的连接。数据通讯的过程如下:(1) 准备Modbus报文,包括7个字节的MBAP在内的请求;(2) 使用Send( )命令发送;(3) 在同一连接等待应答;(4) 用recv( )读报文,完成一次数据交换过程。当通讯任务结束时,关闭TCP连接,使服务器可以为其它设备服务。6 Modbus TCP的样板程序用户可以通过网络下载。(1) 基于WIN32系统下,C的应用程序。(2) 基于UNIX系统下,C的应用程序。(3) JAVA的应用程序。7 Modbus TCP协议协议文本的英文版可从下载。8 Modbus的应用Modbus 是一种通讯协议,于 1979年由Modicon公司发明,并将其公开,推向市场,是基于主站从站/ 客户机服务器方式连接智能设备,实现设备间的数据交换。Modbus 的通讯几乎可以通过任何物理介质实现,如:电线、光纤、红外、射频、扩频、微波、卫星等。Modbus 还可以通过不同的网络进行互连,如:以太网、ADSL、ISDN、PSTN、ATM、FR等。所以它具有很强的扩展能力,可以说:连接的距离已不是问题,它可以通过互联网,连接到世界的任何地方。Modbus 具有很高的速度性能:响应时间小于10毫秒,目前可以满足工业控制中90% 应用的需求,它的下一个实现目标是:响应时间小于1毫秒。由于Modbus 是制造业、基础设施环境下,真正的开放协议,故得到了工业界的广泛支持,是事实上的工业标准。还由于它的协议简单、容易实施和高性价比,所以全球有超过400个厂家支持,使用的设备节点超过700万个。9 典型应用介绍人机界面+可编程控制器+变频调速器应用(HMI+PLC+VSD)这是一种设备制造商(OEM)和传统设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论