信捷PLC与力控组态实现MODBUS通讯

信捷PLC与力控组态实现MODBUS通讯
信捷PLC与力控组态实现MODBUS通讯

信捷PLC与力控组态实现MODBUS通讯本次测试采用信捷PLC型号为XC2-14RT-E通过RS422

PLC编程线与力控组态软件实现MODBUS通讯。

测试软件版本:信捷XC系列PLC编程软件 XCPPro 3.3q

力控组态软件版本:力控Forcecontrol 6.1 破解版

电脑系统:XP

以下是通讯参数截图:

选择MODBUS(RTU串行口),通讯方式为串口(RS232/422/485)参数设置: 通讯站号1 波特率19200 偶校验停止位1 数据位8注:力控 PLC 电脑三者的参数设置保持一致

如图所示,信捷PLC的MODBUS地址表对应力控只有01号(含X,Y,M等软

元件)03号(含D,TD等软元件)

如元件M0对应力控组态数据地址,因为是地址00000,所以选择01号命令,如果寄存器地址是从0开始,地址0要加1则变为1

通讯不上检查以下问题

台达PLC通讯协议

台达PLC通讯协议V1.12 通讯接口RS-232C RS-485 2. 通讯协议ASCII 模式, 9600(传输速率), 偶同位, 1 个起始位, 1 个停止位 9600,7,e,1 3. 通讯资料格式 STX 起始字符‘:’(3AH) ADR 1 通讯地址: ADR 0 8-bit 地址包含了2 个ASCII 码 CMD 1 命令码: CMD 0 8-bit 命令包含了2 个ASCII 码 DATA(0)资料内容: DATA(1)n个8-bit 资料包含了2n 个ASCII 码 ………. n <=74 个ASCII 码 DATA(n-1) LRC CHK 1 侦误值: LRC CHK 0 8-bit 侦误值包含了2 个ASCII 码 END 1 结束字符: END 0 END 1 = CR(0DH),END 0 = LF(0AH) ADR(通讯地址) PLC 通讯地址出厂设定值为0x01,因此(ADR 1, ADR 0)=’0’,’1’ ’0’=30H, ‘1’= 31H LRC CHK(侦误值)CMD(命令指令)及DATA(数据字符) LRC CHK(侦误值) 侦错方式采用LRC(Longitudinal Redundancy Check)侦误值。LRC 侦误值乃是将ADR1 至最后

一个资料内容加总,将该值取2 补码(2’s Compl ement)得到之结果即为LRC 侦误值。附录-3 例: STX ‘:’ ADR 1 ‘0’ ADR 0 ‘1’ CMD 1 ‘0’ CMD 0 ‘3’ 起始资料地址‘0’ ‘4’ ‘0’ ‘1’ 资料数‘0’ ‘0’ ‘0’ ‘1’ LRC CHK 1 ‘F’ LRC CHK 0 ‘6’ END 1 CR END 0 LF 01H+03H+04H+01H+00+01H = 0AH 0AH 的2 补码为F6H 注1 2 补码的求法:(1 补码再加1) 0A(H)= 0000 1010(B)先取1 补码(将b0~b7 反相)得1111 0101(B),再加1 为1111 0110

modbus_通讯协议_实例

上海安标电子有限公司 ——PC39A接地电阻仪通信协议 通信协议: 波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 字节号 1 2 3 4 5 6 7 8 意义ID Command 数据地址V alue CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,读:3或4,写:6 3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始 4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位) 5 CRC:计算出CRC 下位机(PC39A): 读数据,若正确 字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位) 4 V alue:N个字节,是返回上位机的数据 5 CRC:计算出CRC 写命令,若正确 返回收到的数据: 若错误 字节号 1 2 3 4 5 意义ID Command 数据CRC 注:1 ID:1个字节,由单机来定(0~255) 2 Command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令 错误指令 1:表示command不存在 2:表示数据地址超限 4 CRC:计算出CRC

例如读PC39A 电流数据: 机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12 3 100 1 CRC_H CRC_L 从机返回 如正确: ID Command 数据个数(以字节为单位) V alue CRC 16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3 2 1545 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制 12 131 2 CRC_H CRC_L 例如发PC39A 启动命令: 机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 从机返回 如正确: ID Command 数据地址 V alue CRC 16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12 6 200 25000 CRC_H CRC_L 如错误: ID Command 数据 CRC 16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12 134 2 CRC_H CRC_L 0011 10000110 错误码0x83 功能码0x06错误码0x86

台达PLC串行通讯及应用案例

浅析台达PLC串行通讯及应用案例 摘要:本文介绍串行通讯的基本概念,台达PLC的串行通迅功能及在项目中实际应用案例,主要讨论如何使用台达PLC完善的通讯功能完成各种实际应用,体现了台达PLC强大的 通讯功能及其便利性。 关键词:串行通讯、PLC、RS485、MODBUS协议、变频器、自由口通讯、EASY LINK 一、前言 随着计算器技术的发展,通讯传输在工业自动化控制领域得到越来越广泛的应用,由于串行通讯方式具有使用线路少、成本低、简单易用,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。现在各PLC生产厂家都极其重视通讯在PLC推广中的应用,并且各具有优势特点,合理利用通讯功能将极大的降低控制成本,提高产品竞争力。 二、串行通讯简介 通讯即是不同的设备通过线路互相交换数据,其主要目的在于将数据从某端传送到另一端,实现数据的交换。通常有并行和串行两种方式,由于并行传输方式在数据电压传送的过程中容易因线路的因素而使得电压准位发生变化(衰减、线路互相干扰),而串行通讯方式则能很好的解决这些问题,因此在工业应用中绝大多数使用串行通讯。 串行通讯的接口方式分为RS-232和RS-485两种,下面主要介绍两种方式的一些特点: 1、RS-232 (1)RS-232-C接口连接器一般使用型号为DB-9的9芯插头座,只需三条接口线,即“发送数据”、“接收数据”和“信号地”即可传输数据,其9支脚位的定义如下: (2)在RS232的规范中,电压在+3V---+15V(一般使用+6V)之间称为“0”或“ON”;电压在-3V----15V(一般使用-6V)之间称为“1”或“OFF”;计算机上的RS-232“高电位”约9V,而“低电位”则约-9V。 (3)RS-232为全双工工作模式,其讯号准位是参考地线而得,分别作为数据的传送和接收;实际应用中其传输距离可以达到15米。只具有单站功能,即一对一通讯。 2、RS485 (1)采用正负两根信号线作为传输线路。 (2)RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。

基于Modbus协议实现单片机与PLC之间的通讯

基于Modbus协议实现单片机与PLC之间的通讯 来源:PLC&FA 作者:蔡晓燕赵兴群万遂人董鹏云 关键词:可编程控制器 Modbus 通讯协议 1 引言 HMI(人机界面)以其体积小,高性能,强实时等特点,越来越多的应用于工业自动化系统和设备中。它有字母、汉字、图形和图片等不同的显示,界面简单友好。配有长寿命的薄膜按钮键盘,操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器,以实现实时快速处理。PLC和单片机结合不仅可以提PLC的数据处理能力,还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例,详细讨论了一个人机系统中,如何用C51实现单片机和PLC之间通讯的实例。 2 Modbus通讯协议[4] Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。 Modbus协议提供了主—从原则,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域。从设备回应消息包括确认地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下,RTU可比ASCII方式传送更多的数据,所以采用KTU模式。 (1) 典型的RTU消息帧 典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit。可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址,以使所有的从设备都能认识。主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 RTU消息帧中的功能代码域包含了8bits,当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)。 从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代 码所定义的行为。这包括了像不连续的寄存器地址,要处理项的数目,域中实际数据字节数。如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动。 当选用RTU模式作字符帧时,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。 (2) 所有的Modbus功能码 Modbus的功能码定义如表2所示。

台达PLC通信协议ModbusASCII(DVP)

台达P L C通信协议 M o d b u s A S C I I(D V P) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

台达PLC通信协议ModbusASCII(DVP) 编撰:李浩特日期:2013/11/12 版本:Ver:3.2 例1:读D0(地址为1000H)寄存器数据-------------------------------2 例2:读D0-D8(D0地址为1000H,D8地址为1008H)寄存器数据----------3 例3:把0010H写入D0数据寄存器------------------------------------4 例4:写D10-D17数据寄存器-----------------------------------------5 例5:强制把0010H写入D0数据寄存器--------------------------------5 例6:读取M0(地址为0800H)状态-------------------------------------6 例7:读取M0-Y32状态----------------------------------------------6 例8:读取Y0(地址为0500H)状态-------------------------------------7 例9:读取Y0-Y37状态----------------------------------------------7 例10:读取X0(地址为0400H)状态------------------------------------8 例11:读取X0-X37状态--------------------------------------------8 例12:强制Y0置位------------------------------------------------9 例13:强制Y0复位------------------------------------------------9 例14:强制M0置位------------------------------------------------10 例15:强制M0复位------------------------------------------------10

台达PLC通信协议书ModbusASCII[DVP]

台达PLC通信协议ModbusASCII(DVP) 编撰:李浩特日期:2013/11/12 版本:Ver:3.2 例1:读D0(地址为1000H)寄存器数据-------------------------------2 例2:读D0-D8(D0地址为1000H,D8地址为1008H)寄存器数据----------3 例3:把0010H写入D0数据寄存器------------------------------------4 例4:写D10-D17数据寄存器-----------------------------------------5 例5:强制把0010H写入D0数据寄存器--------------------------------5 例6:读取M0(地址为0800H)状态-------------------------------------6 例7:读取M0-Y32状态----------------------------------------------6 例8:读取Y0(地址为0500H)状态-------------------------------------7 例9:读取Y0-Y37状态----------------------------------------------7 例10:读取X0(地址为0400H)状态------------------------------------8 例11:读取X0-X37状态--------------------------------------------8 例12:强制Y0置位------------------------------------------------9 例13:强制Y0复位------------------------------------------------9 例14:强制M0置位------------------------------------------------10 例15:强制M0复位------------------------------------------------10

(完整版)MODBUS通讯协议-RTU要点

Modbus 通讯协议 (RTU传输模式)本说明仅做内部参考,详细请参阅英文版本。

第一章Modbus协议简介 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,在相反的方向上终端设备发出的应答信号传输给主机。协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。 1.1 传输方式 传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以RTU 模式在Modbus总线上进行通讯时,信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼容的传输方式。 代码系统 ?8位二进制,十六进制数0...9,A...F ?消息中的每个8位域都是一个两个十六进制字符组成 每个字节的位 ?1个起始位 ?8个数据位,最小的有效位先发送 ?1个奇偶校验位,无校验则无 ?1个停止位(有校验时),2个Bit(无校验时) 错误检测域 ?CRC(循环冗长检测)

台达VFD通讯示例

台达VFD-B变频器串口通信中,频率设定,还有正转、反转、停止字符串是怎样写? 范例1:设定VFD-B系列变频器的频率为30.00Hz,通讯格式为9600,8,N,2,RTU 01 06 2001 0BB8 D488 范例2:设定VFD-B系列变频器正转,通讯格式为9600,8,N,2,RTU 01 06 2000 0022 0213 范例3:设定VFD-B系列变频器停止,通讯格式为9600,8,N,2,RTU 01 06 2000 0001 43CA 西门子与台达变频器通讯 ORGANIZATION_BLOCK 主程序:OB1 TITLE=实现S7-200 PLC与台达变频器通信 // 实现功能是PLC通过RS485通信控制变频器的正转启动、反转启动、停止、加速、减速和读取输出频率。变频器通过Modbus通信方式进行 // 要求台达变频器设置基本通信参数: // P00=d03(主频率由RS485控制) // P01=d03(运转/停止由RS485通信控制) // P88=d01(站点定义为1号站) // P90=d00 P91=d00 P92=d02 P113=d01 // (其他参数都是出厂默认值,可根据实际情况调节) // BEGIN Network 1 LD SM0.1 CALL SBR0

Network 2 // 正转启动命令LD M10.0 EU MOVB 16#30, VB104 MOVB 16#36, VB105 MOVB 16#32, VB106 MOVB 16#30, VB107 MOVB 16#30, VB108 MOVB 16#30, VB109 MOVB 16#30, VB110 MOVB 16#30, VB111 MOVB 16#31, VB112 MOVB 16#32, VB113 CALL SBR1 Network 3 // 反转启动指令LD M10.1 EU MOVB 16#30, VB104 MOVB 16#36, VB105 MOVB 16#32, VB106 MOVB 16#30, VB107 MOVB 16#30, VB108 MOVB 16#30, VB109 MOVB 16#30, VB110 MOVB 16#30, VB111 MOVB 16#32, VB112 MOVB 16#32, VB113 CALL SBR1 Network 4 // 停止指令 LD M10.2 EU MOVB 16#30, VB104

很好的威纶通MODBUSRTU通讯协议与变频器通讯案例

很好的威纶通 M O D B U S R T U通讯协议与变频器通讯案例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

本文研究的是触摸屏通过MODBUS RTU通讯协议与变频器通讯实现变频器的控制。触摸屏采用威纶通TK6070IP,变频器用汇川MD380通用系列。通过触摸屏编程软件,编辑控制画面实现变频器的启动、停止、速度调节、多段速速度设置,通过宏指令实现工程值与实际值的转换。 一、MODBUS RTU 简介: 为了在自动化系统之间、自动化系统和所连接的分散的现场设备之间进行信息交换,如今串行现场总线被主要用作通讯系统。成千上万的应用已经强烈地证明了通过使用现场总线技术,可以节省多至40%的接线、调试及维护的费用。仅仅使用两根电线就可以传送现场设备的所有相关信息,比如输入和输出数据、参数、诊断数据。过去使用的现场总线往往是制造商的特定现场总线,并且同其它现场总线不兼容。如今使用的现场总线几乎是完全公开和标准化的。这就意味者用户可以以最合理的价格选择最好的产品,而不用依赖于每个独立的制造商。Modbus RTU是一种国际的、开放的现场总线标准。作为一种很容易实现的现场总线协议,在全世界范围内,Modbus得到了成功的应用。应用领域包括生产过程中的自动化、过程控制和楼宇自控。MODBUS RTU通讯协议的报文如图1。 图1 MODBUS RTU 通讯协议的报文功能码如下: 01H 读取线圈状态。从执行机构上读取线圈(单个位)的内容; 02H 读取离散量输入。从执行机构上读取离散量输入(多个位)的内容; 03H 读取保持寄存器。从执行机构上读取保持寄存器(16位字)的内容; 04H 读取输入寄存器。从执行机构上读取输入寄存器(16位字)的内容; 05H 强置单线圈。写数据到执行机构的线圈(单个位)为“通”(“1”)或“断”(“0”); 06H 预置单寄存器。写数据到执行机构的单个保持寄存器(16位字); 0FH 强置多线圈。写数据到执行机构的几个连续线圈(单个位)为“通”(“1”) 或“断”(“0”); 10H 预置多寄存器。写数据到执行机构的几个连续的保持寄存器(16位字)。 二、威纶通编程软件介绍: EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有 3x_bit,4x_bit,6x_bit,0x_multi_coils等,下面分别说明这些设备类型在MODBUS协议中支持哪些功能码。 0x:是一个可读可写的设备类型,相当于操作PLC的输出点。该设备类型读取位状态的时候,发出的功能码是01H,写位状态的时候发出的功能码是05H。写多个寄存器时发出的功能码是0fH。

modbus协议下上位机编程实例

竭诚为您提供优质文档/双击可除modbus协议下上位机编程实例 篇一:modbus协议下的上位机地址 Rs485采取流量计数据,经串口com1的2号地址读到int ouch中来,双字40001、40002为浮点型瞬时流量,读到上位机项目为40001F双字40004、40005为长整型累计流量,读到上位机项目为40004l 驱动设置与intouch标记名的设置 驱动设置: 项目名设置 注:在不修改驱动设置的情况下,s=s1+s2*65535 s=s2+s1*65535 根据各个厂家的仪表,上面工式有区别,设计时各个测试一下。 篇二:modbus通讯协议实例 上海安标电子有限公司 ——pc39a接地电阻仪通信协议 通信协议:

波特率:9600数据位:8校验位:无停止位:1 上位机(计算机): 注:1id:1个字节,由单机来定(0~255) 2command:1个字节,读:3或4,写:6 3数据地址:2个字节,寄存器地址,读从100开始,写从200开始4Value:2个字节,读:个数(以整型为单位),写:命令/数据(以整型为单位)5cRc:计算出cRc下位机(pc39a ):注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令 3数据个数:1个字节,返回数据个数(以字节为单位)4Value:n个字节,是返回上位机的数据5cRc:计算出cRc 写命令,若正确返回收到的数据:若错误注:1id:1个字节,由单机来定(0~255) 2command:1个字节,收到的上位机命令或上0x80, 如收到3,返回0x83 3数据:1个字节,错误的指令错误指令 1:表示command不存在2:表示数据地址超限 4cRc:计算出cRc 例如读pc39a电流数据: 机器地址为12,电流的数据地址100,数据为15.45(a)(一个整型数据)

Modbus通讯协议(TCP和RTU)

1MODBUS RTU 读寄存器请求序号意义所占字节字节存放格式 1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3起始寄存器基地址两个字节高字节在前 4寄存器个数两个字节高字节在前 5CRC校验码两个字节低字节在前 读寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x03 3数据长度1个字节寄存器个数×2 4数据寄存器个数×2个字节每个寄存器高字节在前5CRC校验码两个字节低字节在前 写单个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x06 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 写单个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器值两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 1

写多个寄存器请求序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5数据长度 1个字节 寄存器个数×2  6数据寄存器个数×2个字节每个寄存器高字节在前7CRC校验码 两个字节 低字节在前 写多个寄存器回应序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节0x10 3起始寄存器地址两个字节高字节在前 4寄存器个数两个字节 高字节在前 5CRC校验码 两个字节 低字节在前 错误返回序号意义所占字节字节存放格式1从设备地址1个字节0x00?0xff 2功能码1个字节请求功能码+0x80 3错误码1个字节 其代号见下面表格4CRC校验码 两个字节 低字节在前 错误代号错误代号意义 0x01不支持该功能码 0x02越界 0x03寄存器数量超出范围 0x04读写错误 2

台达PLC通讯协议

台达PLC通讯协议原文 1、通讯协议ASCII模式,9600,7,e,1 ADR(通讯地址): PLC通讯地址出厂设定为0X01,因此(ADR1,ADR0)=‘0’,‘1’→=30H,31H 校验码: 校验码采用LRC方式,将ADR1至最后一个资料内容加总,将该值取2的补数,结果即为LRC校验码。 例: 01H+03H+04H+01H+00+01H=0AH 0AH的2的补数为F6H

注1: 2补数的求法:(1补数再加1) 0A(H)=00001010(B)先取1补数(将b0-b7反相)得11110101(B),再加1为11110110(B)=F6(H)即为0A(H)的2补数。 注2: 在收到一串完整的通讯命令,要检查这串通讯命令是否有误,只要将(ADR1,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。 通讯异常PLC的回应: 因为Address 0400 对Function 01是不合法的,所以回应Exception Code=0X02,且Function 01被设为81(b7被设为1),亦即由回应的Function code的MSB被设为1表示PLC回应ERROR MESSAGE,并且由Function code可得知是何种错误。 可用的命令码叙述如下:(每个device的address,请参考最后一页)

资料字元的格式依命令码而定,依可用的命令码的资料内容分别叙述如下: 例:从从动装置01读取线圈T20-T56 PC→PLC “:01 01 06 14 00 25 BF CR LF”

例:从从动装置01读取接点Y024-Y070 PC→PLC “:01 02 05 14 00 25 BF CR LF” 例:从从动装置01读取线圈T20-T27 PC→PLC “:01 03 06 14 00 08 DA CR LF”

电磁流量计实用标准MODBUS通讯协议详情(1)

电磁流量计转换器 通讯协议 2012-10-12

目录 一、概述................................................................................................. - 2 - 二、网络结构及接线................................................................................ - 2 -

三、Modbus协议RTU帧格式 .............................................................. - 2 - 四、Modbus协议命令编码定义............................................................. - 4 - 五、电磁流量计MODBUS寄存器定义 ................................................... - 5 - 1. 电磁流量计MODBUS寄存器地址定义............................................... - 5 - 2.PLC地址设置说明................................................................................ - 5 - 3.组态王地址设置说明............................................................................. - 6 -4.数据含义说明 .................................................................................... - 6 -六、通讯数据解析................................................................................... - 7 -1读瞬时流量 .......................................................................................... - 7 -2.读瞬时流速:....................................................................................... - 8 -3读累积流量 .......................................................................................... - 8 - 5.读总量流量单位 ................................................................................. - 10 - 6.读报警状态 ........................................................................................ - 10 - 七、应用举例........................................................................................ - 11 - 1.C语言MODBUS 示例程序............................................................... - 11 - 2.modbus调试软件modbus poll通讯实例....................................... - 13 - 3.modbus调试软件modscan32通讯实例 ......................................... - 15 - 4.组态王6.53通讯实例 ........................................................................ - 17 - 5.力控 6.1通讯实例.............................................................................. - 21 -

台达PLC通讯协议(2)

台达PLC通讯协议V1.12通讯接口RS-232C RS-485 2. 通讯协议ASCII模式,9600 (传输速率),偶同位,1个起始位,1个停止位 9600,7,e,1 3. 通讯资料格式 STX起始字符’:’(3AH) ADR 1通讯地址: ADR 0 8-bit地址包含了2个ASCII码 CMD 1命令码: CMD 0 8-bit命令包含了2个ASCII码 DATA( 0)资料内容: DATA(1)n个8-bit资料包含了2n个ASCII码 ......... ... n <=74 个ASCII 码 DATA (n-1) LRC CHK 1侦误值: LRC CHK 0 8-bit侦误值包含了2个ASCII码 END 1结束字符: END 0 END 1 = CR( 0DH), END 0 = LF( 0AH) ADR (通讯地址) PLC 通讯地址出厂设定值为0x01,因此(ADR 1, ADR 0 =' 0 ' ,' 1' ' 0' =30H, '1'= 31H LRC CHK(侦误值)CMD (命令指令)及DATA (数据字符) LRC CHK(侦误值) 侦错方式采用LRC (Longitudinal Redundancy Check )侦误值。LRC侦误值乃是将ADR1至最后一个资料内容加总,将该值取2补码(2' s Complement )得到之结果即为LRC侦误值。 附录-3 例: STX ':' ADR 1 ' 0' ADR 0 ' 1' CMD 1 ' 0' CMD 0 ' 3' 起始资料地址’0' '4' '0' '1' 资料数’0' '0' '0' '1' LRC CHK 1 ' F' LRC CHK 0 ' 6' END 1 CR

modbus通讯协议

Modbus通讯协议 图片: 图片: 图片:

Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master 端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP 协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。 下表是ASCII协议和RTU协议进行的比较: 通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII 字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输’F’’9’的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。所以一般来说,如果所需要传输的数据量较小可以考虑使用ASCII协议,如果所需传输的数据量比较大,最好能使用RTU协议。

台达PLC通讯组态设置.doc

概述系统连接硬件连接硬件设置设备组态数据连接常见问题 概述 台达PLC通讯协议支持与台达PLC通讯。本协议采用串行通讯,使用你计算机中的串口。 系统连接 您可以通过一个RS232-RS485转换器将一台或多台模块与计算机连接到一起。当用一条485总线连接多台模块时,每台模块的地址必须是唯一的. 硬件连接 请参照您所使用的模块的通讯说明进行连接。 (1)RS232:采用厂家提供的专用电缆。一端接计算机的串口,一端接PLC的编程口。 波特率 9600 数据位 7位 停止位 2位 校验位偶校验 (2)RS485:计算机通过RS232串口接转换模块,变成RS485信号后,接到PLC的485口上 波特率 9600 数据位 7位 停止位 1位 校验位偶校验

设备组态 设备驱动根据模块不同分为选择相应的模块驱动。如图:根据您所使用的PLC、智能模块选择设备驱动。 下图是设备组态用户界面:

根据PLC或智能模块内部设置的地址填写“设备地址”,相对于协议的设备ID. 更新周期:默认50毫秒就是说每隔一个更新周期读一次数据包。请根据组态工程的实际需要和PLC的通讯反应时间设定。 超时时间:默认8秒,当到超时时间的时候,PLC的数据还没传上来被认为是一次通讯超时。请根据组态工程的实际需要和现场的通讯情况设定。 故障后恢复查询:当设备发生故障导致通讯中断,系统会每隔一定“周期”查询该设备。直到“最长时间”如果还没有反应,在这次运行过程中系统将不再查询该设备。 “动态优化”和“初始禁止”请在力控工程人员的指导下使用,否则请保持默认状态。 下图为串口通讯设置:请根据PLC或智能模块的通讯说明设置波特率,数据位,校验位,停止位。

MODBUS标准通讯协议

MODBUS 标准通讯协议(简版) (基于Modbus 应用协议RTU 通讯模式) 1. 前言 本协议适用于符合MODBUS 标准通讯协议的规定以及在Modbus 网络上以RTU 模式通信运行的设备和应用软件。本协议按照Modbus 应用协议标准制定。 2. 波特率可选范围 代码 6 7 8 9 10 11 12 13 14 波特率 2400 4800 9600 14400 19200 28800 38400 57600 115200 3. RTU 通讯数据传输模式 3.1 RTU 模式每个字节( 11 位 )的格式为 : 通讯传输为异步方式,并以字节(数据帧)为单位。在主站和从站之间传递的每一个数据帧都是11位的串行数据流。 编码系统: 8–位二进制,报文中每个8 位字节含有两个4 位十六进制字符(0–9, A –F) 数 据 位: 1个 起始位 8个 数据位, 首先发送最低有效位 1个 奇偶校验(注:偶校验是要求的,其它模式( 奇校验,无校验 )也可以使用) 1个 停止位 (注 :使用无校验时要求2个停止位) 帧校验域:循环冗余校验(CRC) 3.2 字符的串行传送方式: 每个字符或字节按如下顺序发送(从左到右):最低有效位 (LSB) . . . 最高有效位 (MSB) 通过配置,设备可以接受奇校验、偶校验或无校验。如果无奇偶校验,那么传送一个附加的停止位来填充数据帧使其成为完整的11位异步字符: 3.3 数据编码: Modbus 处理的所有数据按照存储数据的类型可以分为位寄存器(容量为1位)和16位寄存器(容量为16位)两种,它们的宽度都是16位(Data is packed as two bytes per register),协议允许单个选择65536个数据项,而且其读写操作可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。在Modbus PDU 中从0~65535寻址每个数据。 Modbus 使用一个‘big-Endian ’表示地址和数据项,即最高有效字节在低地址存储,最低有效字节在高字节存储。这意味着当发送多个字节时,首先发送最高有效位例如: 寄存器大小 值 16位 0x1234 发送的第一字节为0x12,然后发0x34。 4. RTU 报文帧结构 Modbus RTU 报文帧格式如下: 地址码 功能码 数据区 错误校验码 2 字节 1字节 1字节 0到252字节 CRC 低 CRC 高

台达PLC通讯协议

台达PLC 通讯协议V1.12 通讯接口RS-232C RS-485 2. 通讯协议ASCII 模式, 9600(传输速率), 偶同位, 1 个起始位, 1 个停止位 9600,7,e,1 3. 通讯资料格式 STX 起始字符‘:'(3AH) ADR 1 通讯地址: ADR 0 8-bit 地址包含了2 个ASCII 码 CMD 1 命令码: CMD 0 8-bit 命令包含了2 个ASCII 码 DATA(0)资料内容: DATA(1)n 个8-bit 资料包含了2n 个ASCII 码 ………. n <=74 个ASCII 码 DATA(n-1) LRC CHK 1 侦误值: LRC CHK 0 8-bit 侦误值包含了2 个ASCII 码 END 1 结束字符: END 0 END 1 = CR(0DH),END 0 = LF(0AH) ADR(通讯地址) PLC 通讯地址出厂设定值为0x01,因此(ADR 1, ADR 0)='0','1''0'=30H, ‘1' = 31H LRC CHK(侦误值)CMD(命令指令)及DATA(数据字符) LRC CHK(侦误值) 侦错方式采用LRC(Longitudinal Redundancy Check)侦误值。LRC 侦误值乃是将ADR1 至最后一个资料内容加总,将该值取 2 补码(2's Complement)得到之结果即为LRC 侦误值。附录-3例: STX ‘:' ADR 1 ‘0' ADR 0 ‘1' CMD 1 ‘0' CMD 0 ‘3' 起始资料地址‘0' ‘4' ‘0' ‘1' 资料数‘0' ‘0' ‘0' ‘1' LRC CHK 1 ‘F' LRC CHK 0 ‘6' END 1 CR END 0 LF 01H+03H+04H+01H+00+01H = 0AH 0AH 的2 补码为F6H

相关文档
最新文档