通讯协议(例子)
单片机通讯协议有哪些

单片机通讯协议有哪些1. 串行通信协议串行通信协议是一种逐位传输数据的通信协议,常用于单片机与外部设备之间的通信。
以下是几种常见的串行通信协议:(1) 串行通信协议1该协议使用一条数据线和一条时钟线进行通信。
数据线上的数据根据时钟线上的时钟信号进行同步传输。
这种协议简单易用,适合短距离通信。
(2) 串行通信协议2该协议采用多条数据线和一条时钟线进行通信。
数据线上的数据同时传输,时钟信号用于同步数据。
这种协议具有较高的传输速率和抗干扰能力,适合长距离通信。
(3) 串行通信协议3该协议使用一条数据线和一条使能线进行通信。
数据线上的数据根据使能线上的使能信号进行传输。
这种协议适合于低速率的通信。
2. 并行通信协议并行通信协议是一种同时传输多个数据位的通信协议,常用于高速数据传输。
以下是几种常见的并行通信协议:(1) 并行通信协议1该协议使用多条数据线进行通信,每条数据线传输一个数据位。
并行通信协议1适用于要求高速率和并行传输的应用。
(2) 并行通信协议2该协议使用多条数据线传输多个数据位,并使用握手信号进行数据的同步。
并行通信协议2具有较高的传输速率和较低的传输延迟,适用于多媒体数据传输等应用。
(3) 并行通信协议3该协议使用多条数据线进行通信,并采用差分信号传输方式,提高了抗噪声和抗干扰能力。
并行通信协议3适用于长距离通信和高速数据传输。
3. 总线通信协议总线通信协议是一种多个设备共享同一条数据线进行通信的协议,常用于单片机与外围设备的通信。
以下是几种常见的总线通信协议:(1) 总线通信协议1该协议采用主从结构,主设备控制整个通信过程,从设备根据主设备的指令进行响应。
总线通信协议1具有简单可靠的特点,适用于小规模系统。
(2) 总线通信协议2该协议采用多主结构,多个主设备可以同时控制总线上的从设备。
总线通信协议2适用于大规模系统和多任务环境。
(3) 总线通信协议3该协议采用分布式结构,各个设备之间通过总线进行通信。
485通信讲解(附案例)解析

2
3
4
状 态 字
5
实际 运行 数据
6
实际 运行 数据
7
异 或 校 验
校验
起 始 字 节
从 状 机 态 地 字 址
字节定义 头 地址 状态区
数据区
RS485通讯协议
长帧(起始字节=02H)
发送顺序 1 (字节) 控制器至变频器:
2 3 4 5 6 7 8 9 10 11
起 始 字 节
从 功 命 功能 机 能 令 码设 地 码 字 定值 址 号
1 0
RS485通讯协议
响应字定义 控制字 (位)
bit5
值
1 0
含义
停机2状态 非停机2状态
功能描述
变频器执行停机2命令,处于停机状态
bit6
1 0
控制禁止状态 控制允许状态 上位机控制 本地控制方式
到达设定频率/ 速度 未到达设定频率 /速度
因停机1或停机2或变频器故障或异常命令使变 频器停机的状态,需控制字恢复到准备运行状态 使其复位
bit9
1 0
bit10
1 0
变频器只允许本地控制(面板和端子)
RS485通讯协议
响应字位定义 控制字 (位)
bit11
值
1 0
含义 变频器运行状态 变频器停止状态 变频器接受出错
功能描述
bit15
1
0
bit0 bit7~8 bit12~1 4,
变频器接收正确
预留 预留 预留
本位表示来自控制器的通讯帧经 校验出错,控制器应再次发送该 帧。
RS485通讯协议
控制字定义 控制字 (位) bit0 值 1 0 bit1 含义 运行命令 方式0停车 功能描述 起动变频器 减速停车
自定义通信协议例子

自定义通信协议例子自定义通讯协议本协议是由甲方(以下简称“甲方”)和乙方(以下简称“乙方”)共同签署,为规范双方之间的通讯行为而制定。
本协议中的各方身份、权利、义务、履行方式、期限、违约责任均是符合中国相关法律法规的。
一、双方的基本信息:甲方:名称:(填写甲方名称)地址:(填写甲方地址)联系人:(填写甲方联系人)联系电话:(填写甲方联系电话)电子邮件:(填写甲方电子邮件)乙方:名称:(填写乙方名称)地址:(填写乙方地址)联系人:(填写乙方联系人)联系电话:(填写乙方联系电话)电子邮件:(填写乙方电子邮件)二、各方身份、权利、义务、履行方式、期限、违约责任1.甲方的身份是通讯服务提供者,乙方是通讯服务使用者。
2.甲方的权利和义务:(1)提供稳定可靠的通讯服务。
(2)保障乙方的通讯隐私。
(3)保证服务质量及时有效的维护服务可靠性。
(4)在服务中不得出现任何违反中国相关法律法规的行为。
(5)服务期限为双方签署本协议之日起至协议终止。
(6)违约责任:如果甲方严重违反本协议规定,乙方有权要求甲方给予赔偿,赔偿数额以实际损失为准。
3.乙方的权利和义务:(1)按照本协议规定的规定向甲方支付通讯服务费用。
(2)按照甲方规定的方式、时间和条款向甲方提交通讯服务需求。
(3)在使用甲方的通讯服务时,不得进行违反中国相关法律法规的行为。
(4)服务期限为双方签署本协议之日起至协议终止。
(5)违约责任:如果乙方严重违反本协议规定,甲方有权要求乙方给予赔偿,赔偿数额以实际损失为准。
三、遵守中国相关法律法规本协议所涉及到的各项规定及双方行为均应遵守《中华人民共和国电信条例》、《中华人民共和国网络安全法》等相关法律法规。
双方应当严格遵守法律法规的规定,不得以任何方式违反法律法规。
四、法律效力和可执行性本协议自甲方与乙方签署之日起生效,在协议有效期内,双方应严格遵守本协议,协议到期前双方未达成续约或协议终止后,本协议自动失效。
如本协议的任何条款因与法律法规相抵触或被迫废止,其他条款仍然有效。
通信协议模板

1 应用范围本规范要求了电能表进行点对点或者一终端对多台电能表进行一主多从当地通讯接口进行数据交换技术要求, 要求了当地系统硬件和协议规范。
要求了物理连接、通讯链路及应用技术规范(数据基础格式、校验方法、编码传输规则等)。
本规范关键参考了部颁DL/T 645- 1997 多功效电能表通信规约, 依据我企业DSSD331-3、DTSD341-3 电能表特色做了对应扩展。
本规范中未给出部份例子和示意图请参见部颁规约。
2 引用标准下列标准所包含条文, 经过在本标准中引用而组成为本标准条文。
本标准出版时, 所表示版本均为有效, 全部标准都会被修订, 使用本标准各方应探讨使用下列标准最新版本可能性。
DL/T 645- 1997 DL/T 614- 1997 多功效电能表通信规约多功效电能表3 术语3.1 费率装置tariff device固定数据采集与处理单元, 通常与电能表连接或者与电能表组装在一起。
3.2 手持单元(HHU) hand-heldunit能与费率装置或者电能表进行数据交换便携式设备。
3.3 数据终端设备data terminal equipment由数据源、数据宿或者二者组成设备。
3.4 直接当地数据交换direct local data exchange一组费率装置与数据终端设备经过总线连接进行数据交换。
3.5 当地总线数据交换local bus data exchange一组费率装置与数据终端设备经过总线连接进行数据交换。
3.6 远程数据交换remote data exchange经过数据网络, 数据采集中心与一台或者一组费率装置之间数据交换。
3.7 主站master station含有选择从站并与从站进行信息交换功效设备。
本标准中指手持单元或者其它数据终端设备。
3.8 从站slave station预期从主站接收信息并与主站进行信息交换设备。
本标准中指费率装置。
3.9 总线bus连接主站与多个从站并许可主站每次只与一个从站通信系统连接方法(广播命令除外)。
RS485例子+

RS485P/CSMC轿厢C/R门禁层站C/R居室对讲#FSMEC和MESE电梯协议转换器与第三方IC卡、门禁、对讲通过RS485通讯协议范例波特率:9600bps 1位起始位,8位数据位,1位偶校验位,1位停止位。
以下各范例中红色表示第三方IC卡、门禁、对讲(以上三者销售人员常称为弱电SMC)发给电梯协议转换器(PROCON),绿色表示电梯协议转换器(PROCON)应答第三方IC卡、门禁、对讲(SMC)。
有电梯状态回电梯状态,没有的话回空包。
数据发送和接收的数据均用16进制表示。
电梯楼层,-1,1~15层,共16层。
系统构成,1个bank 1台电梯(#F号梯),系统构成图如下所示:第一部分适用于单开门电梯(1D1G/1D2G)●范例1:查询空包Event: no eventCommand code: None02 00 80 00 80 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例2:轿内——管理员刷卡(楼层信息FF)Event:administrator logs in carCommand code: 0X0902 00 03 06 09 00 00 10 FF 00 DF 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例3:轿内——业主刷卡1个权限,目的层为前门6楼Event:owner logs in car to one floorCommand code: 0X0902 00 03 06 09 00 00 00 06 00 E8 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例4:轿内——业主刷卡多个权限,目的层为前门1、前门3、前门5、前门7、前门前门8、前门10、前门12、前门14楼Event:owner logs in car to many floorsCommand code: 0X0A02 00 03 07 0A 00 00 00 02 AA 55 EB 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例5:层站——7楼业主出门(居室内呼梯)Event:owner go outCommand code: 0X0102 00 01 06 01 00 80 07 00 01 70 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例6:层站——11楼业主进楼(门禁刷卡)Event:owner go homeCommand code: 0X0102 00 01 06 01 00 40 01 00 0B AC 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例7:层站——访客去6楼(业主在居室内开放权限)Event:visitor visit owner.Command code: 0X0102 00 01 06 01 00 80 01 00 067E 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例8:层站——业主层间互访3楼去8楼Event:owner visit another owner.Command code: 0X0102 00 01 06 01 00 80 03 00 08 6D 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)第二部分适用于双开门电梯(2D2G)●范例9:查询空包Event: no eventCommand code: None02 00 80 00 80 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例10:轿内——后门刷卡1个权限,目的层为后门9楼Event:owner logs in car (rear door) to one floor(rear door)Command code: 0X0902 00 03 06 09 00 12 00 09 00 D3 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例11:轿内——前门刷卡1个权限,目的层为后门9楼Event:owner logs in car (front door) to one floor(rear door)Command code: 0X0902 00 03 06 09 00 10 00 09 00 D5 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例12:轿内——后门刷卡多个权限,目的层为后门1、后门3、后门5、后门7、后门8、后门10、后门12、后门14楼Event:owner logs in car (rear door) to many floors(rear door)Command code: 0X0A02 00 03 07 0A 00 02 00 20 AA 55 CB 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例13:层站——8楼业主出门(后门出发前门到达)Event:owner go out (from rear door to front door)Command code: 0X0102 00 01 06 01 00 81 08 00 01 6E 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例14:层站——11楼业主回家(后门出发前门到达)Event:owner go home (from rear door to front door)Command code: 0X0102 00 01 06 01 00 41 01 00 0B AB 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例15:层站——访客去6楼(后门出发后门到达)Event:visitor visit owner. (from rear door to rear door)Command code: 0X0102 00 01 06 01 00 91 01 00 06 60 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)●范例16:层站——层间互访3楼去8楼(后门出发后门到达)Event:owner visit another owner. (from rear door to rear door)Command code: 0X0102 00 01 06 01 00 91 03 00 08 5B 0302 80 03 03 91 01 00 E8 03(电梯状态)或者02 80 80 00 00 03(空包)。
MODBUS通讯协议-RTU(DOC)

MODBUS通讯协议-RTU(DOC)简介Modbus通讯协议是一种通用语言,广泛应用于电子控制器上。
通过该协议,不同厂商生产的控制设备可以连接成工业网络,进行集中监控,已成为通用工业标准。
该协议定义了控制器能够认识使用的消息结构,并描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,以及如何侦测错误并记录。
在Modbus网络上通信时,每个控制器需要知道设备地址、识别按地址发来的消息,并决定产生何种行动。
该协议只允许在主计算机和终端设备之间进行数据交换,不允许独立设备之间的数据交换。
传输方式在Modbus总线上进行通讯时,使用RTU模式,信息中的每8位字节分成两个4位16进制的字符,并且每个信息必须连续传输。
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则。
代码系统采用8位二进制和十六进制数0.9,A。
F,消息中的每个8位域都是由两个十六进制字符组成。
每个字节的位包括1个起始位、8个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)和1个停止位(有校验时为2个Bit,无校验时为1个Bit)。
错误检测域采用CRC(循环冗长检测)。
协议简介Modbus通讯协议是一种通用语言,广泛应用于电子控制器上。
通过该协议,不同厂商生产的控制设备可以连接成工业网络,进行集中监控,已成为通用工业标准。
该协议定义了控制器能够认识使用的消息结构,并描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,以及如何侦测错误并记录。
传输方式在Modbus总线上进行通讯时,使用RTU模式,信息中的每8位字节分成两个4位16进制的字符,并且每个信息必须连续传输。
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则。
代码系统采用8位二进制和十六进制数0.9,A。
F,消息中的每个8位域都是由两个十六进制字符组成。
每个字节的位包括1个起始位、8个数据位(最小的有效位先发送)、1个奇偶校验位(无校验则无)和1个停止位(有校验时为2个Bit,无校验时为1个Bit)。
三菱plc,通讯协议

三菱plc,通讯协议篇一:三菱PLC通讯协议三菱PLC编程口通讯协议一、三菱PLC编程口通讯协议三菱PLC编程口的通讯协议比较简单,只有四个命令,即: 命令命令码目标设备DEVICE READ CMD0X,Y,M,S,T,C,DDEVICE WRITE CMD 1X,Y,M,S,T,C,DFORCE ON CMD7 X,Y,M,S,T,CFORCE OFF CMD 8X,Y,M,S,T,C五个标示:ENQ05H 请求ACK06H PLC正确响应NAK15H PLC错误响应STX02H 报文开始ETX03H 报文结束使用累加方式的和校验,帧格式如下:STX CMD DATA ...... DATA ETX SUM(upper)1SUM(lower)和校验:SUM= CMD+??+ETX。
如SUM=73H,SUM=“73”。
1、DEVICE READ(读出软设备状态值)计算机向PLC发送:始命令首地址位数终和校验STXCMD GROUP ADDRESS BYTESETX SUMPLC 返回STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM 2、DEVICE WRITE(向PLC 软设备写入值)计算机向PLC发送:始命令首地址位数数据终和校验PLC 返回ACK (06H) 接受正确NAK (15H) 接受错误3、位设备强制置位/复位FORCE ON 置位始命令地址终和校验STX CMD ADDRESSETXSUM02h 37h address03hsumFORCE OFF 复位始命令地址终和校验2STX CMD ADDRESSETXSUM02h 38h address03hsumPLC 返回ACK(06H) 接受正确NAK(15H) 接受错误以上可以看出,协议非常简单,但是由于没有寄存器类型信息,所以地址的计算十分关键,如D100和M100分别对应哪个地址呢,下面就是三菱Fx系列PLC地址对应表: Public Const PLC_D_Base_AddRess = 4096Public Const PLC_D_Special_Base_AddRess = 3584 Public Const PLC_Y_Group_Base_AddRess = 160 Public Const PLC_PY_Group_Base_AddRess = 672 Public Const PLC_T_Group_Base_AddRess = 192 Public Const PLC_OT_Group_Base_AddRess = 704 Public Const PLC_RT_Group_Base_AddRess = 1216 Public Const PLC_M_SINGLE_Base_AddRess = 2048(命令为7或8时)Public Const PLC_M_Group_Base_AddRess = 256 Public Const PLC_PM_Group_Base_AddRess = 768 Public Const PLC_S_Group_Base_AddRess = 0Public Const PLC_X_Group_Base_AddRess = 128 Public Const PLC_C_Group_Base_AddRess = 4483Public Const PLC_OC_Group_Base_AddRess = 960 Public Const PLC_RC_Group_Base_AddRess = 1472 Public Const PLC_TV_Group_Base_AddRess = 2048 Public Const PLC_CV16_Group_Base_AddRess = 2560 Public Const PLC_CV32_Group_Base_AddRess = 3072 当我们用DEVICE READ命令时,D100地址=100*2+4096;M100地址=100+256;不同的是D类型寄存器存放的是字,M寄存器存放的是位,同样是读两个字节,D100返回的就是PLC中D100地址的值,M类型寄存器返回的是M100到M116的值。
(完整word)通讯协议大全,推荐文档

(完整word)通讯协议大全,推荐文档TCP/IPTCP/IP是网络中使用的基本的通信协议。
TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。
IPX/SPX(多用于局域网)是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP(Sequenced Packet Protocol:顺序包协议)协议NetBEUI即NetBios Enhanced User Interface,或NetBios增强用户接口。
网络通信协议:RS-232-C、RS-449、V.35、X.21、HDLC简单网络管理协议:简单网络管理协议SNMP、点到点协议PPP3G标准:WCDMA(欧洲版)、CDMA2000(美国版)和TD-SCDMA (中国版)Modbus协议Modbus就是工业控制器的网络协议中的一种包括ASCII、RTU和TCP现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
网络协议大全1、ARP(address resolution protocol)地址解析协议2、SNMP(simple network management P)网络管理协议,是TCP/IP的一部分3、AppleShare protocol(AppleShare 协议)4、AppleTalk 协议5 、BOOTP协议(Bootstrap Protocol) 应用一个基于TCP/IP协议的协议,该协议主要用于有无盘工作站的局域网6、CMIP(Common Management Information Protocol)通用管理信息协议,它是建立在开放系统互连通信模式上的网络管理协议。
485多机通信协议

RS-232是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。
RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。
为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。
RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。
为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。
由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。
备注:以上是官方的专业描述,看不懂没有关系,大致有个印象就可以了,有兴趣的可以上网可以买一些专业书籍做深入研究,我再用通俗的语言补充描述一下。
1. RS485通讯协议1.1. 主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
串行通讯,数据帧11位,1个起始,8个数据位,2个停止位1.2. 数据传输格式采用标准ASCⅡ码1.2.1. 通讯数据字符集0(30H)1(31H)2(32H)3(33H)4(34H)5(35H)6(36H)7(37H)8(38H)9(39H)A(41H)B(42H)C(43H)D(44H)E(45H)F(46H) .(2EH)-(2DH)+(2BH)1.2.2. 通讯控制字符集DC1(11H):读瞬时值DC2(12H):读参数DC3(13H):写参数DC4(14H):读写FCC5000STX(02H):从机起始符ETX(03H):主机结束符ETB(17H):从机结束符RS (1EH):数据间隔符US (1FH):参数间隔符ACK(06H):接收正确NAK(15H):接收错误CAN(18H):通讯复位SP (20H):空白符1.3. 通讯协议1.3.1. 读瞬时值1.3.1.1. 读单通道瞬时值主机发送:DC1 AAA CC ETXDC1(11H):读瞬时值AAA :从机地址码(=001~254)CC :通道号(=01-99)ETX(03H):主机结束符从机回送:STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETBSTX(02H):从机起始符AAA :从机地址码(=001~254)CC :通道号(=01-99)US(1FH):参数间隔符MM :表型字(=00~99)DDDDDDD :瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,小数点在实际位置)EEEE :报警1~4报警状态(E=0:OFF E=1:ON)SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):从机结束符例子:主机发送:11H 30H 30H 31H 30H 31H 03H(读001号表01通道瞬时值)从机回送:02H 30H 30H 31H 30H 31H 1FH 30H 36H 1FH 2DH 30H 31H 32H 33H 2EH 34H 1FH 31H 30H 30H 30H 1FH 30H 31H 30H 30H 34H17H(001号表为XMA5000系列,01号通道瞬时值=-0123.4,报警1动作,报警2不动作,校验和=1004)1.3.1.2. 读多通道瞬时值主机发送:DC1 AAA CC ETXDC1(11H):读瞬时值AAA :从机地址码(=001~254)CC :通道号(=00)ETX(03H):主机结束符从机回送1:STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETBSTX(02H):从机起始符AAA :从机地址码(=001~254)CC :通道号(=01,表示不支持多通道批读,由表型号字判断通道数,逐个通道读取瞬时值)US(1FH):参数间隔符MM :表型字(=00~99)DDDDDDD :瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,小数点在实际位置)EEEE :报警1~4报警状态(E=0:OFF E=1:ON)SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):从机结束符从机回送2:STX AAA CC US MM US RS FF US GGGGGG US H HHH … US SSSSS ETBSTX(02H):从机起始符AAA :从机地址码(=001~254)CC :通道号(=00,表示支持多通道批读)US(1FH):参数间隔符MM :表型字(=00~99)RS :数据间隔符FF :通道号(=01~99)GGGGGGG :瞬时值(-32167~32767,32767=brok,16000=H.oFL,-2000=L.oFL,小数点在实际位置)HHHH :报警1~4报警状态(E=0:OFF E=1:ON)SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):从机结束符注:下划线为通道数据格式1.3.2. 读参数主机发送:DC2 AAA CC US PP ETXDC2(12H):读参数值AAA :从机地址码(=001~254)CC :通道号(=01-99)US(1FH):参数间隔符PP :参数号(=01-69)ETX(03H):主机结束符从机回送:STX AAA CC US PP US DDDDDDD US SSSSS ETBSTX(02H):从机起始符AAA :从机地址码(=001~254)CC :通道号(=01-99)US(1FH):参数间隔符PP :参数号(=01~69)DDDDDDD :参数值(=-1999~15999)SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):从机结束符例子:主机发送:12H 30H 30H 31H 30H 31H 1FH 31H 32H 03H(读001号表01通道参数号12量程零点值)从机回送:02H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH 30H 31H 32H 33H 2EH 34H 1FH 30H 30H 37H 37H 37H 17H(001号表01通道参数号12量程零点值=-0123.4,校验和=777)1.3.3. 写参数主机发送:DC3 AAA CC US PP US DDDDDDD US SSSSS ETXDC3(13H):写参数值AAA :从机地址码(=001~254)CC :通道号(=01-99)US(1FH):参数间隔符PP :参数号(=11-69)DDDDDDD :参数值(=-1999~15999)SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETX(03H):主机结束符从机回送:ACK(06H):接收正确NAK(15H):接收错误例子:主机发送:13H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH 30H 31H 32H33H 2EH 34H 1FH 30H 30H 37H 39H 34H 17H(写001号表01通道参数号12量程零点值=-0123.4,校验和=797)从机回送:06H (写参数成功)1.3.4. 读写FCC下挂仪表数据1.3.4.1. 读单通道瞬时值主机发送:DC4 FF DC1 AAA CC ETXDC4(14H):读写FCC5000FF :FCC5000地址码(=01~99)DC1(11H):读仪表瞬时值AAA :仪表地址码(=001~254)CC :仪表通道号(=01~99)ETX(03H):主机命令结束符FCC回送:DC4 FF STX AAA CC US MM US DDDDDDD US EEEE US SSSSS ETB或DC4 FF NAKDC4(14H):读写FCC5000FF :FCC5000地址码(=01~99)STX(02H):数据起始符AAA :仪表地址码(=001~254)CC :仪表通道号(=01~99)US(1FH):参数间隔符MM :仪表表型字(=00~99)DDDDDDD :瞬时值(-32767~32767,32767=brok,16000=H.oFL,-2000=L.oFL,-32767=仪表故障,小数点在实际位置)EEEE :报警1~4报警状态(E=0:OFF E=1:ON)FFFFF :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):数据结束符NAK(15H):错误命令或错误地址例子:主机发送:14H 30H 31H 11H 30H 30H 31H 30H 31H 03H(读01号FCC 下挂001号表01通道瞬时值)FCC回送:14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 30H 36H 1FH 2DH 30H 31H 32H 33H 2EH 34H 1FH 31H 30H 30H 30H 1FH 30H 31H31H 32H 31H 17H(001号表为XMA5000系列,01号通道瞬时值=-0123.4,报警1动作,报警2不动作,校验和=1121)1.3.4.2. 读参数主机发送:DC4 FF DC2 AAA CC US PP ETXDC4(15H):读写FCC5000FF :FCC5000地址码(=01~99)DC2(12H):读仪表参数值AAA :仪表地址码(=001~254)CC :仪表通道号(=01~32)PP :仪表参数号(=01~69)ETX(03H):主机命令结束符FCC 回送:DC4 FF STX AAA CC US PP US DDDDDDD US SSSSS ETB 或DC4 FF NAKDC4(14H):读写FCC5000FF :FCC5000地址码(=01~99)STX(02H):数据起始符AAA :仪表地址码(=001~254)CC :仪表通道号(=01~32)US(1FH):参数间隔符PP :仪表参数号(=00~69)DDDDDDD :仪表参数值SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):数据结束符NAK(15H):错误命令或错误地址或错误参数例子:主机发送:14H 30H 31H 12H 30H 30H 31H 30H 31H 1FH 31H 32H 03H(读01号FCC下挂001号表01通道,参数号12量程零点值)FCC回送:14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH 30H 31H 32H 33H 2EH 34H 1FH 30H 30H 37H 38H 39H 14H(001号表01通道,参数号12量程零点值=-0123.4,校验和=894)1.3.4.3. 写参数主机发送:DC4 FF DC3 AAA CC US PP US DDDDDDD US SSSSS ETXDC4(14H):读写FCC5000FF :FCC5000地址码(=01~99)DC3(13H):写仪表参数值AAA :仪表地址码(=001~254)CC :仪表通道号(=01~32)PP :仪表参数号(=01~69)DDDDDDD :仪表参数值SSSSS :校验和5位十进制=00000~65535,从STX到最后一个US间每个字符ASC值的和,再除以65536的余数)ETB(17H):数据结束符FCC回送:DC4 FF ACK或DC4 FF NAKDC4(14H):读写FCC5000FF :FCC5000地址码(=01~99)ACK(06H):正确接收NAK(15H):接收错误例子:主机发送:14H 30H 31H 13H 30H 30H 31H 30H 31H 1FH 31H 32H 1FH 2DH30H 31H 32H 33H 2EH 34H 1FH 30H 30H 39H 31H 31H 17H(写01号FCC下挂001号表01通道,参数号12量程零点值=-0123.4,校验和=911)FCC回送:14H 30H 31H 06H (写参数成功)1.3.4.4. 读FCC时间主机发送:DC4 FF DC2 00101 US 70 ETXFF :FCC5000地址码(=01~99)FCC回送:DC4 FF STX 00101 US 70 US YYYYMMDDhhmmss US SSSSS ETB YYYYMMDDhhmmss :YYYYMMDDhhmmss(年月日时分秒)例子:主机发送:14H 30H 31H 12H 30H 30H 31H 30H 31H 1FH 37H 30H 03H(读01号FCC参数号70实时时间)FCC回送:14H 30H 31H 02H 30H 30H 31H 30H 31H 1FH 37H 30H 1FH 32H 30H 30H 33H 31H 30H 30H 31H 30H 38H 30H 30H 30H 30H 1FH30H 31H 32H 34H 34H 17H(01号FCC实时时间2003年10月1日8点0分0秒,校验和=1244)1.3.4.5. 写FCC时间主机发送:DC4 FF DC3 00101 US 70 US YYYYMMDDhhmmss US SSSSS ETX FCC回送:DC4 FF ACK或DC4 FF NAK例子:主机发送:14H 30H 31H 13H 30H 30H 31H 30H 31H 1FH 37H 30H 1FH 32H 30H 30H 33H 31H 30H 30H 31H 30H 38H 30H 30H 30H 30H 1FH30H 31H 32H 36H 31H 03H(写01 FCC实时时间2003年10月1日8点0分0秒,校验和=1261)FCC回送:14H 30H 31H 06H (写参数成功)1.3.4.6. 读FCC下挂仪表地址范围主机发送:DC4 FF DC2 00101 US 71 ETXFCC回送:DC4 FF STX 00101 US 71 US AAA RS BBB US SSSSS ETBAAA :起始地址BBB :终止地址1.3.4.7. 读FCC下挂故障仪表地址主机发送:DC4 FF DC2 00101 US 72 ETXFCC回送:DC4 FF STX 00101 US 72 US AAA RS … US SSSSS ETBAAA :故障地址注:下划线为故障地址发送格式;数据为空表示无故障地址1.3.4.8. 读所有通道瞬时值主机发送:DC4 FF DC2 00101 US 73 ETXFCC回送:DC4 FF STX 00101 US 73 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … USSSSSS ETBAAA :仪表地址码(=001)BB :仪表通道号(=01)US(1FH):参数间隔符PP :仪表参数号(=00~99)CCCCCCC :瞬时值(-32767~32767,32767=brok,16000=H.oFL,-2000=L.oFL,-32767=仪表故障,小数点在实际位置)DDDD :报警1~4报警状态(E=0:OFF E=1:ON)注:下划线为通道数据格式,故障仪表数据只发送01通道1.3.4.9. 读取FCC下一条历史数据记录主机发送:DC4 FF DC2 00101 US 74 ETXFCC回送:DC4 FF STX AAA CC US 74 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … USSSSSS ETB注:下划线为通道数据格式;通道数据为空表示历史数据已经读空发送方式同73参数,只是故障仪表数据不发送1.3.4.10. 重读FCC上一条历史数据记录主机发送:DC4 FF DC2 00101 US 75 ETXFCC回送:DC4 FF STX AAA CC US 75 US YYYYMMDDhhmmss RS AAA BB US CCCCCCC US DDDD … USSSSSS ETB1.3.4.11. 读取FCC时间历史数据记录读指针对应时间点主机发送:DC4 FF DC2 00101 US 76 ETXFCC回送:DC4 FF STX 00101 US 76 US YYYYMMDDhhmmss US SSSSS ETB1.3.4.12. 移动FCC时间历史数据记录读指针对应时间点主机发送:DC4 FF DC3 00101 US 76 US YYYYMMDDhhmmss US SSSSS ETB FCC回送:DC4 FF ACK或DC4 FF NAK用途:FCC历史数据记录读指针通过74号参数读来一条一条移动,大量历史数据记录读取可能需要很长时间,可用76号参数直接移动到所需数据时间点,然后用74读取。
ModbusTCP通讯协议 (2)

ModbusTCP通讯协议协议名称:ModbusTCP通讯协议一、引言ModbusTCP通讯协议是一种基于TCP/IP网络的通信协议,用于在不同设备之间进行数据传输和通信。
本协议旨在规范ModbusTCP通讯的数据格式、通信方式、错误处理等相关内容,以确保通信的可靠性和一致性。
二、术语定义1. ModbusTCP:基于TCP/IP网络的Modbus通信协议。
2. 主站:发送请求并接收响应的设备。
3. 从站:接收请求并发送响应的设备。
4. 传输单元标识符(Unit Identifier):用于标识从站设备的唯一标识符。
5. 功能码(Function Code):用于定义Modbus请求的类型和操作。
6. 寄存器(Register):用于存储数据的内存单元。
三、通信方式1. 连接建立主站与从站之间的连接通过TCP/IP网络建立。
主站作为客户端发起连接请求,从站作为服务器接受连接请求。
2. 数据格式ModbusTCP通讯协议采用大端字节顺序(Big-Endian)进行数据传输。
数据包括请求数据包和响应数据包。
请求数据包格式:- 事务标识符(Transaction Identifier):2字节,用于标识请求和响应的匹配关系。
- 协议标识符(Protocol Identifier):2字节,用于标识ModbusTCP协议。
- 长度字段(Length Field):2字节,表示后续字段的字节数。
- 单元标识符(Unit Identifier):1字节,用于标识从站设备。
- 功能码(Function Code):1字节,用于定义Modbus请求的类型和操作。
- 数据字段(Data Field):可变长度,根据具体功能码和操作而定。
- CRC校验(Cyclic Redundancy Check):2字节,用于检测数据传输的错误。
响应数据包格式:- 事务标识符(Transaction Identifier):2字节,与请求数据包的事务标识符匹配。
(完整)MODBUS_RTU通讯协议

MODBUS 通讯协议使用手册从机地址码(=001〜254) 读寄存器值岀错 见信息码表从字节1到3的CRC16校验和1.4.功能码06H:写单个寄存器值:1.RTU 方式通讯协议1.1. 硬件采用RS- 485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2. 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 384001.3. 功能码03H:读寄存器值 主机发送: 第1字节ADR 第2字节03H 第3、4字节第5、6字节 第7、8字节从机地址码(=001〜254) 读寄存器值功能码 要读的寄存器开始地址 要读FCC 下挂仪表,要读的寄存器数量从字节1到6的CRC16校验和从机回送:第1字节ADR 第2字节 03H第3字节第4到M 字节 从机地址码(=001〜254) 返回读功能码从4到M (包括4及M 的字节总数 寄存器数据第 M+ 1、 当从机接收错误时,从机回送: M+2字节 : 从字节1至U M 的CRC16校验和 第1字节ADR 第2字节 83H第3字节信息码 第4、 5字节当从机接收正确时,从机回送:当从机接收错误时,从机回送:从机地址码(=001〜254)写寄存器值岀错功能码 见信息码表从字节1到3的CRC16校验和当从机接收错误时,从机回送:从机地址码(=001〜254) 写寄存器值岀错 见信息码表从字节1到3的CRC16校验和第1字节ADR 第2字节 86H 第3字节错误数息码 第4、 5字节第1字节ADR 第2字节 90H 第3字节错误信息码 第4、 5字节0164 0166备注:E为阶码。
M 为尾数的小数点部分。
例如:浮点数 124.75 = 42F98000H,在内存中的存放格式为: 2.寄存器定义表中,读写属性有打 的寄存器为只读寄存器。
没有打"的为读写寄存器。
1.9 信息码表:1.10仪表表型字 00 XMZ5000 01 XMT/XMB5000 02 XMDI50003 XMS500004 XML6000 05 XMD5XX16 (16)06 XMA5000 07 XMH5000 08XML5000 (3)9 XMJ500010 XMD5XX08 (8) 11 XMPHT/XMPHB50012 XMD5XX32(32)13 XME5000 (3) 14 XMDO500015 XMLH5000 (4+1)16XMD5XX24 (24)17 XMAF5000 (2)18 XMC5000(24)30 XMG5000 31 XMGI5000 32 XMG7000 (2)33 XMG8000 (3) 34 XMHG500035 XMGA5000/6000 ⑷36 XMGAF5/6/7000 (4) 37 XMRA5000/6000 (5)38XMRAF5000/6000 (5)39 XMPA7000 (5)40 XMPAF7000 (5) 41 XMRA7000 (6)42 XMRAF7000 (6)43 XMPHGA5000/6000 44 XXS45 XMRH5000 46 DFD/DFQ/DFDA/DFDQ5000/DFQA700050 XMPA8000 (7)51 XMPAF8000 (7) 52 XMRA8000 (8)53 XMRAF8000 (8)545560XMLY5000 61XMLY60001.11仪表分度号00 0〜10mA 线性 014〜20mA 线性 02 0〜5V 线性03 1〜5V 线性 04 0〜100线性 050〜10mA 开方06 4〜20mA 开方 07 0〜5V 开方 08 1〜5V 开方09 0〜100开方 10 Pt100 11 Pt100.012 Pt1013 Cu100 14 Cu5015 30〜350Q 16 G53 17 BA118 BA2 19 F1 20 F221 B 22 R 23 S24 N 25 K 26 E27 J28 T 29NiCr-AuFe0.0730钨铼3-钨铼2631EA232 EU233: 0 〜60mV注:16 通讯板跳线端子说明:拨码开关拨向ON 表示零(1)值8 7 6 5 4 3 2 1 (端子 1)端子2的4 3 2 1 位为FCC 仪表地址选择,当4 3 2 1 位=0 0 0 0 ,表示不挂FCC 仪表;例如4 32仁0 0 1 0 表示FCC 仪表地址为2(注: 对于xml 型号的仪表 通道1表示XML 的瞬时值;通道 2表示XML 的温度值;通道3表示XML 的压 力值;xml 的瞬时值,温度值,压力值,支持批读; XML 的累积流量的寄存器地址从 0150h 到 0153h ; XMD,XM (多路采集器支持批读。
单片机通讯协议(非常经典)

这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我 们通常所用到的RS232、RS485、红外、光纤、无线等等通信方式。在这个层面上,底层软 件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全 部建立在这两个操作方法之上。 通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据 。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部 分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。
以下给出具体的实例。在这个系统中,串口的命令非常简单。所有的协议全部在串口中断 中进行。数据包的格式如下:
0x55, 0xAA, 0x7E, 0x12, 0xF0, 0x02, 0x23, 0x45, SUM, XOR, 0x0D
其中0x55,
0xAA,
0x7E为数据帧的帧头,0x0D为帧尾,0x12为设备的目的地址,0xF0为源地址,0x02为数据
} else if(state_machine == 10) {
if(0x0D == rcvdat) // 判断是否接收到帧尾结束符 {
retval = 0xaa; // 置标志,表示一个数据包接收到 } state_machine = 0; // 复位状态机 }
此过程中,使用了一个变量state_machine作为协议状态机的转换状态,用于确定当前字节 处于一帧数据中的那个部位,同时在接收过程中自动对接收数据进行校验和处理,在数据 包接收完的同时也进行了校验的比较。因此当帧尾结束符接收到的时候,则表示一帧数据 已经接收完毕,并且通过了校验,关键数据也保存到了缓冲去中。主程序即可通过retval的 标志位来进行协议的解析处理。
MODBUS通讯实例

MODBUS 通讯协议及编程 #1Modbus 通讯协议分为 讯协议,如: CH2000 光柱数显表等。
下面就 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义也与Modbus RTU 通讯规约相兼容: 编 码 8 位二进制起始位 1 位数据位 8 位奇偶校验位 1 位(偶校验位)停止位 1 错误校检 初始结构地址码 =1 字节 功能码 = 1 字节数据区 = N 字节 错误校检 = 16 位 CRC 码 结束结构=字节的时间 地址码: 地址码为通讯传送的第一个字节。
这个字节表明由用户设定地址码的从机将接 收由主机发送来的信息。
并且每个从机都有具有唯一的地址码, 并且响应回送均以各自的地 址码开始。
主机发送的地址码表明将发送到的从机地址, 而从机发送的地址码表明回送的从 机地址。
功能码:通讯传送的第二个字节。
Modbus 通讯规约定义功能号为 1到 127 。
本仪表只 利用其中的一部分功能码。
作为主机请求发送, 通过功能码告诉从机执行什么动作。
作为从 机响应,从机发送的功能码与从主机发送来的功能码一样, 并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位为1(比如功能码大与此同时 127),则表明从机没有响应操作或发送出错。
CRC 码:二字节的错误检测码。
二)、通讯规约:当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息, 如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包 括地址码、 执行动作的功能码、 执行动作后结果的数据以及错误校验码。
如果出错就不发送 任何信息。
1.信息帧结构 地址码 功能码 数据区 错误校验码8位8位N X 8位16位地址码:地址码是信息帧的第一字节 (8 位),从 0到 255 。
这个字节表明由用户设置地 址的从机将接收由主机发送来的信息。
三菱FX系列PLC编程口通信协议举例

三菱FX系列PLC编程口通信协议举例1、DEVICE READ(读出软设备状态值)计算机向PLC发送:例子:从D123开始读取4个字节数据地址算法:address=address*2+1000h再转换成ASCII31h,30h,46h,36hPLC返回注:最多可以读取64个字节的数据例子:从指定的存储器单元读到3584这个数据2、DEVICE WRITE(向PLC软设备写入值)例子:向D123开始的两个存储器中写入1234,ABCDPLC返回ACK (06H) 接受正确NAK (15H) 接受错误3、位设备强制置位/复位FORCE ON置位FORCE OFF复位PLC返回ACK(06H) 接受正确NAK(15H) 接受错误设备强制中的地址公式:Address=Address/8+100h说明:1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。
三菱FX系列PLC编程口通信协议总览该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。
感谢网友visualboy 提供。
通讯格式:传输格式: RS232C波特率: 9600bps奇偶: even校验:累加方式(和校验)字符: ASCII16进制代码:帧格式:例子:STX ,CMD ,ADDRESS, BYTES, ETX, SUM02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H SUM=CMD+......+ETX;30h+31h+30h+46h+36h+30h+34h+03h=74h;累加和超过两位取低两位。
通讯协议MODBUS—RTU ~~经典

5、写单个保持寄存器:
上位机计算机发送命令:
需下置的寄
设备地址 功能码 存器地址高
8位
11H
06H
00H
需下置的寄 存器地址低
8位 01H
下置的数 据高 8 位
00H
下置的数 CRC 校验 CRC 校验 据低 8 位 的低 8 位 的高 8 位
03H
CRC 低 CRC 高
意义如下: <1>设备地址和上面的相同。 <2>功能码:写寄存器的功能码固定为 06。 <3>需下置的寄存器地址高 8 位,低 8 位:表明了需要下置的寄存器的
例子中为 3 个寄存器。注意,在返回的信息中一个寄存器需要返回两个字节。
设备响应:
设备地址 功能码
11H
03H
返回的 字节个
数
06H
数据 1
02H
数据 2
2BH
数据
数据 数据 CRC 校验 CRC 校验
数据 4
3
5 6 的低 8 位 的高 8 位
00H 00H 00H 64H CRC 低 CRC 高
中为把该开关闭合。注意,此处只可以是 [FF][00]表示输出闭合 ;[00][00]
表示输出断开,其他数值非法。
<5>注意此命令一条只能下置一个开关量的状态。
设备响应:
设备地址
功能码
需下置的寄 需下置的寄
存器地址高 存器地址低
8位
8位
下置的数 据高 8 位
11H
05H
00H
ACH
FFH
下置的数 CRC 校验 CRC 校验 据低 8 位 的低 8 位 的高 8 位
通信协议模板(ASCII)

精心整理组态王与单片机协议1.通讯口设置:通讯方式:RS-232RS-485RS-422均可。
波特率:由单片机决定注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致2.在组态王中定义设备地址的格式格式:##・#前面的两个字符是设备地址,范围为0—255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。
3.在组态王中定义的寄存器格式斜体字dd代表数据地址,此地址与单片机的数据地址相对应。
注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。
为提高通讯速度建议用户使用连续的数据区。
例如,1、在单片机中定义从地址0开始的数据类型为BYTE型的变量:则在组态王中定义相应的变量的寄存器为X0、XI、X2、X3>X4oooooooo,数据类型为BYTE,每个变量占一个字节2、在单片机中定义从地址100开始的数据类型为UINT型的变量:则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。
,数据类型UINT,每个变量占两个字节3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量:则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。
,数据类型FLOAT,每个变量占四个字节3.组态王与单片机通讯的命令格式:读写格式(除字头、字尾外所有字节均为ASCII码)说明;字头:1字节1个ASCII码,40H设备地址:1字节2个ASCII码,0—255(即0—OxOffH)标志:1字节2个ASCII码,bit0~bit7, bitO=O:读,bitO=l:写。
单点表通讯协议

单点表通讯协议一.硬件连接和设置:1.仪表设置:a.BAUD设置:(默认为BAUD = 3 )BAUD = 0 通讯波特率1200 数据位=8 校验位=N 停止位=1BAUD = 1 通讯波特率2400 数据位=8 校验位=N 停止位=1BAUD = 2 通讯波特率4800 数据位=8 校验位=N 停止位=1BAUD = 3 通讯波特率9600 数据位=8 校验位=N 停止位=1b.ID设置: (默认为ID = 1 )通讯地址可设位0-31(接在同一485口上的通讯地址不能一样)c.硬件连接:(仪表接线以实物准,并请参照本文件接线。
仪表端子号对应为)仪表端子号对应为:C804/T804 A-12 B-11C403 A-3 B-11C903 A-10 B-9C904 A-22 B-21C703/C704 A-15 B-16与电脑连接:与PLC等MODBUS主站连接:2.电脑或其它主站设备的设置:a. 与电脑连接:打开光盘中相应的文件“单点表.exe”,此时若出现一下消息框,请将“MSCOMM32.OCX”复制到WINDOWS目录下“C:\WINDOWS\system32”处,然后重新打开文件“单点表.exe”。
选择对应的COM号,选“测量”,此时,若电脑与仪表通讯正常,信息框内数值颜色为黑色,并显示测量值。
b.与PLC等MODBUS主站连接:请参照PLC或其它MODBUS主站设备的相关通讯说明b.与PLC等MODBUS主站连接:请参照PLC或其它MODBUS主站设备的相关通讯说明二.软件设置:串口:8位数据位,1位停止位,无奇偶波特率:1200,2400,4800,9600RTU模式当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。
这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
代码系统•8位二进制,十六进制数0...9,A...F•消息中的每个8位域都是一个两个十六进制字符组成每个字节的位•1个起始位•8个数据位,最小的有效位先发送•1个奇偶校验位,无校验则无•1个停止位(有校验时),2个Bit(无校验时)错误检测域•CRC(循环冗长检测)RTU帧使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。
MEMOBUS通讯协议(485通讯)

MEMOBUS通讯协议(485通讯)使用*****通讯功能使用*****通讯协议,能够与*****系列等可编程控制器进行串行通信。
接线说明通讯口RS-485/422R+R-S+S-G*****通信输入*****通信输出通信屏蔽线RS-485通讯为2线制,请短接R+和S+,R-和S-差动输入PHC绝缘差动输出PHC绝缘图1端子布局图2RS-485通讯接线相关参数参数NO.H7.01.H7.02.H7.03.H7.04.名称串行口通讯协议串行口通道号串行口设置RTS选择0:422通讯内容0:*****SHIFX2协议1:*****协议本机的通讯地址设定范围0,11~3100~FF出厂设定*****1:485通讯0,1设定通讯中断的保护方式:H7.05.通讯中断保护动作0:不保护2:减速停止H7.06.H7.07H7.08通讯中断保护时间发送等待时间自动写入EEPROM使能1:自由滑行停止3:非常减速停止4.仅警告0.1~25.0s2~65ms0,11.0s5ms00~4通讯中断的检测时间接收命令后到发送响应之间的延时时间写数据到参数区时是否写入EEPROM的选择0:不写入1:自动写入H7.09数据方向发送数据和地址的方向0:高位字节在前,1:低位字节在前0,10注1:串口设置字的定义:位*****6*****4*****2BIT1~BIT0使能位:0:失效1:生效1:有效验1:奇效验1:2位1:同步通讯2:*****3:*****定义数据长度:0:8位长度1:7位长度效验使能:0:无效验效验选择:0:偶效验停止位选择:0:1位通讯方式:0:异步通讯通讯波特率:0:*****:*****例如:H7.03=80,即设置串行口为9600,N,8,1BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0***-*****通信规格以下表示*****通信规格。
项目接口同步方式RS-422,RS-485异步(起止同步)速率:可从9600/*****/*****/*****bps中选择通信参数数据长:8位固定检验:从偶/奇/无中选择停止位:1位固定通信协议可连接台数*****(只有RTU模式)最多31台(使用RS-485时)规格信号格式化*****通信是主控制器对驱动装置传送指令,驱动装置采取接收指令响应形式,下表为信号格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程模块说明1(通道)
MODULE chrs() VAR contents[0..QSL]: {ack,red,green,blue}; seq[0..QSL]: 0..ML; len: 0..QS; start: 0..QSL; INIT (for xx in [0..QSL]): contents[xx]=0; (for xx in [0..QSL]): seq[xx]=0; len=0; start=0; TRANS len>0: (len,start):=(len-1,(start+1)%M); //loosy channel
过程说明3a
PROCEDURE mpsscase1(wd,s) VAR pc: {s0,s1,s2,s3}; tmp: {ack,red,green,blue}; INIT pc=s0; tmp=0; TRANS pc=s0: chget(aa,tmp,s)&(pc):=(s1); pc=s1: (wd,pss.busy[s],pss.obuf[s],pc):=(wd+1,1,tmp,s2); pc=s2: chput(rr,tmp,s)&(s):=((s+1)%M)&RETURN;
过程说明2
PROCEDURE chput(nn,c,s) VAR pc: {s0,s1}; pos: 0..QS; INIT pc=s0; pos=0; TRANS nn=0&pc=s0: (pos,pc):=((chr.start+chr.len)%QS,s1); nn=0&pc=s1: (chr.contents[pos],chr.seq[pos],chr.len):=( c,s,chr.len+1)&RETURN; nn=1&pc=s0: (pos,pc):=((chs.start+chs.len)%QS,s1); nn=1&pc=s1: (chs.contents[pos],chs.seq[pos],chs.len):=( c,s,chs.len+1)&RETURN; nn=2&pc=s0: (pos,pc):=((cha.start+cha.len)%QS,s1); nn=2&pc=s1: (cha.contents[pos],cha.len):=(c,cha.len+1)&RETURN; nn=3&pc=s0: (pos,pc):=((chb.start+chb.len)%QS,s1); nn=3&pc=s1: (chb.contents[pos],chb.len):=(c,chb.len+1)&RETURN;
过程说明1
PROCEDURE chget(nn,c,s) VAR INIT TRANS nn=rr: (c,s,chr.start,chr.len):=( chr.contents[chr.start],chr.seq[chr.start], (chr.start+1)%QS,chr.len-1)&RETURN; nn=ss: (c,s,chs.start,chs.len):=( chs.contents[chs.start],chs.seq[chs.start], (chs.start+1)%QS,chs.len-1)&RETURN; nn=aa: (c,cha.start,cha.len):=( cha.contents[cha.start],(cha.start+1)%QS,cha.len-1)&RETURN; nn=bb: (c,chb.start,chb.len):=( chb.contents[chb.start],(chb.start+1)%QS,chb.len-1)&RETURN;
进程模块说明3(pss)
MODULE mpss() VAR busy[0..ML]: 0..1; obuf[0..ML]: {ack,red,green,blue}; q: 0..ML; s: 0..ML; //q=oldest unacked,s=next to send y: 0..ML; wd: 0..W; INIT (for xx in [0..ML]): busy[xx]=0; (for xx in [0..ML]): obuf[xx]=0; q=0; s=0; y=0; wd=0; TRANS wd<W&cha.len>0&chr.len<QS: mpsscase1(wd,s)&(wd):=(wd); chs.len>0: chget(ss,ack,y)&(busy[y]):=(0); wd>0&busy[q]=0: (wd,q):=(wd-1,(q+1)%M); chr.len<QS&wd>0&busy[q]=1: mpsscase2(q)&(wd):=(wd);
过程说明3b
进程模块说明2(通道)
MODULE chab() VAR contents[0..QSL]: {ack,red,green,blue}; len: 0..QS; start: 0..QSL; INIT (for xx in [0..QSL]): contents[xx]=0; len=0; start=0; TRANS FALSE: TRUE;
通讯协议 (例子)
通讯协议
A B
通讯协议
A B
S
R
通讯协议
A B
S
R
通讯协议A BchaSchb chrR
chs
通讯协议
pra prb
cha
pss
chb chr
prr
obuf[] busy[] s q
chs
M W QS
ibuf[] recv[] m p
通讯协议模型(主程序)
VVM ft001 DEFINE QS=2 QSL=1 M=4 ML=3 W=2 WL=1 rr=0 ss=1 aa=2 bb=3 VAR err: 0..1; INIT err=0; PROC chr: chrs(); chs: chrs(); cha: chab(); chb: chab(); pra: mpra(); prb: mprb(); SPEC AG(err!=1);