上位机通讯协议(RTU)
DMC3000,DMC6000 控制器MODBUS RTU通讯协议_V1.01
6.CRC16 校验算法
const unsigned char auchCRCHi[]={ 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81, 0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0, 0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01, 0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41, 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81, 0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0, 0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01, 0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40, 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81, 0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0, 0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01, 0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, 0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81, 0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0, 0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01, 0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41, 0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81, 0x40};
很好的威纶通MODBUSRTU通讯协议与变频器通讯案例
很好的威纶通MODBUSRTU通讯协议与变频器通讯案例威纶通(Veintron)是一家专注于工业自动化领域的企业,他们开发了一种基于MODBUS RTU通讯协议的变频器产品,用于实现变频器与其他设备之间的数据交互。
以下是一个关于威纶通MODBUS RTU通讯协议与变频器通讯的案例。
在工厂的生产线上,使用了一台威纶通的变频器控制其中一种设备的转速。
工作人员希望通过上位机监控和控制变频器,以提高整个生产线的效率和稳定性。
首先,需要配置上位机与变频器之间的通讯连接。
上位机采用RS-485接口与变频器进行通讯。
通过串口配置软件,设置上位机的通讯参数,例如波特率、校验位等。
在变频器侧,需设置相应的通讯参数,以确保与上位机的通讯一致。
威纶通的变频器支持MODBUSRTU通讯协议,因此在通讯过程中需要按照该协议的规范进行数据交互。
MODBUSRTU是一种基于串行通讯的协议,使用二进制数据格式进行传输。
在上位机端,可以使用编程语言(如C、C++、Python)或者现有的SCADA软件(如Intouch、LabVIEW)进行开发。
这里以C语言为例,使用串口编程库进行通讯处理。
首先,在上位机端打开串口,并设置串口的通讯参数。
然后,通过MODBUSRTU协议定义相关的指令和数据格式,以实现与变频器之间的数据交互。
例如,使用MODBUSRTU读取变频器的转速,可以发送如下的读取指令:010*********C40B其中,01表示设备地址(每个变频器都有一个唯一的地址),03表示读取寄存器的功能码,0000表示要读取的寄存器地址,0002表示要读取的寄存器数量。
C40B是CRC校验码,用于校验数据的正确性。
当变频器接收到读取指令后,会按照指令中的地址和数量读取相应的寄存器数据,并通过串口返回给上位机。
上位机接收到数据后,可以解析出变频器的转速并进行相应的处理。
类似地,上位机也可以通过MODBUSRTU协议向变频器发送写入指令,以实现对变频器的控制。
RTU通讯协议
RTU通讯协议协议名称:RTU通讯协议一、引言RTU通讯协议是为了实现远程终端单元(Remote Terminal Unit,简称RTU)与上位机之间的数据通讯而制定的协议。
本协议旨在确保数据的可靠传输、实时性和安全性,以满足各种工业自动化系统对数据通讯的需求。
二、术语定义1. RTU:远程终端单元,用于采集、处理和传输现场设备数据的装置。
2. 上位机:工业自动化系统中负责控制和监测RTU的计算机设备。
3. 数据帧:数据通讯中的基本传输单位,包含数据内容和必要的控制信息。
三、通讯协议规范1. 物理层规范1.1 通讯介质RTU与上位机之间的通讯介质可以是串行通讯线路或以太网。
串行通讯线路采用RS-485标准,波特率可根据实际需求设置。
以太网通讯采用TCP/IP协议。
1.2 通讯接口RTU设备应具备相应的串行通讯接口或以太网接口,以实现与上位机的通讯。
2. 数据链路层规范2.1 帧格式数据帧包括帧头、数据内容和帧尾。
帧头和帧尾用于标识数据帧的开始和结束。
帧头和帧尾的具体格式应根据实际情况进行设计。
2.2 帧校验为了确保数据传输的可靠性,每个数据帧应包含校验字段。
校验字段可采用循环冗余校验(CRC)或其他可靠的校验算法。
3. 传输层规范3.1 数据传输方式RTU与上位机之间的数据传输可以采用请求-响应方式或订阅-发布方式。
请求-响应方式要求上位机发送请求命令,RTU接收到请求后进行处理,并将响应数据返回给上位机。
订阅-发布方式要求RTU周期性地将数据上传至上位机,上位机不需要发送请求命令。
3.2 数据传输协议RTU与上位机之间的数据传输协议应采用标准化的协议,如Modbus、DNP3等。
具体协议的选择应根据实际需求和系统要求进行。
4. 应用层规范4.1 数据格式RTU与上位机之间的数据格式应符合系统要求,可以采用二进制、十进制、十六进制等格式进行数据表示。
4.2 数据解析上位机应具备相应的数据解析功能,能够将接收到的数据帧进行解析,并提取出有效的数据内容。
Modbus RTU通讯协议》》》》》
2.波特率设定:在BAUD栏写相应的数据:1代表2400 BIT/S2代表4800 BIT/S3代表9600 BIT/S4代表19200 BIT/S5代表38400 BIT/S3.通讯地址设定:在ADD框中输入要设定的地址,默认为50,设定范围为:1-254,255为公共地址二.调教部分:1.CLEAR按钮:CLEAR按钮为清零按钮2.RESET按钮:RESET按钮为数据在清零后要回到决定位置时单击此按钮三.MODBUS通讯协议MODBUS-RTU MODE Protocol1位起始位,8位数据位,1位停止位,无奇偶效验位上位机要求一般数据读取(一共8个字节)Address 8-bits XXH Function8-bits03HStart_Address16-bitsXXH,XXHPoint16-bitsXXH,XXH=NCRC1616-bits(LO, HI)XXH,XXH 下位机回复(一共5+n个字节)Address 8-bits XXH Function8-bits03H字节8-bitsXXH=NDATAN x 8-bitsXXH,XXH...CRC1616-bits(LO, HI)XXH,XXH-------------------------------------------------------------------- 40001:为写入命令(11为清零)40002:显示高位(注:显示为有符号数,负数取其补码)40003:显示低位(显示=40002值*65536+40003值)40004:线性校正显示高位(注:显示为有符号数,负数取其补码)40005:线性校正显示低位(显示=40002值*65536+40003值)40006:最高显示设定(设定范围:0-60000)40007:最低显示设定(设定范围:0-60000)40008:波特率(1:2400;2:4800;3:9600;4:19200;5:38400)40009:通讯地址(设定范围:1-254,255为公共地址)-------------------------------------------------------------------- 范例:例如40001项写入11实现清0功能.发送如下命令:031 006 000 000 000 011 203 197上位机要求一般数据写入(一共8个字节)Address 8-bits 031 Function8-bits006Start_Address16-bits000,000Point16-bits000,011CRC1616-bits(LO, HI)203,197。
ED212WY通讯协议
ED212WY系列监控仪通讯协议一、基本结构1、通讯网络以RS485构成,不设应答信号,计算机作上位机只能接收数据;2、波特率为9600bps,数据结构位11位。
二、通讯协议(RTU模式)3、波特率:9600bps;4、地址(Addr):08 (用两位ASCII码表示的十六进制数)5、数据格式:1位起始位0,8位数据位,1位可编程位,1位停止位,无校验位;三、数据流结构3.1数据结构Bit7-Bit0:8位数据位Addr:1位可编程位,为1 时收到的帧为同步头(地址),否则为数据。
Stop:1位停止位3.2帧结构一帧数据共13个字节:一个同步头(0xB4H),1个数据长度,10个数据,1个CRC校验和。
3.3数据说明Syn:同步头(0xB4H固定值),此时可编程位Addr为1,以和数据帧区别开。
后续的帧的可编程位Addr均为0。
Len:帧数据长度(0x0BH固定值)。
Cir_H,Cir_L:柴油机转速的高字节和低字节。
(柴油机转速= Cir_H*256+Cir_L)Lube_P:滑油压力。
Wat_T:水温。
Lube_T:油温。
B_V_H,B_V_L:电瓶电压的高字节和低字节。
(电瓶电压=(B_V_H*256+B_V_L)/10)G_V_H,G_V_L:发电机电压(AC相)的高字节和低字节。
(发电机电压= G_V_H *256+ G_V_L)Ala_Bit:报警标记位,对应位置1 时有效。
CIR_A:转速高报警BAP_A:润滑油低压报警WAT_A:淡水温度高报警LUB_A:滑油温度高报警BATVOL_A:电瓶电压低报警FAIL_A:三次启动失败报警FUEL_A:燃油泄漏报警LRC:累加和校验字节;LRC域是一个包含一个8位二进制值的字节。
LRC值由监控仪来计算并放到消息帧中,接收设备在接收消息的过程中计算CRC,丢弃了HRC,保留LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明刚接收的消息有错误,不能使用。
仪表与上位机ModBus通讯协议
仪表与上位机ModbusRTU通讯协议1、接口规格为与PC机或PLC编控仪联机以集中监测或控制仪表,仪表提供RS232、RS485两种数字通讯接口,光电隔离,其中采用RS232通讯接口时上位机只能接一台仪表,三线连接,传输距离约15米;采用RS485通讯接口时上位机需配一只RS232-485的转换器,最多能接64台仪表,二线连接,传输距离约一千米。
2、通讯协议(适合本厂所有1~16路仪表)(1)通讯波特率为1200、2400、4800、9600四档可调,数据格式为1个起始位、8个数据位,1个停止位,无校验位。
(2)上位机读一个参数(2字节)仪表编号功能代码(03)参数首地址读取的字数(0001)CRC161byte1byte2byte2byte2byte(3)仪表返回(2字节):仪表编号功能代码(03)读取的字节数(02)参数值CRC161byte1byte1byte2byte2byte(4)上位机写一个参数(2字节)及仪表返回(2字节)(帧格式相同):仪表编号功能代码(6)参数首地址参数值CRC161byte1byte2byte2byte2byte(5)参数代码及地址见仪表说明书通道显示值地址:1通道:1001H2通道:1002H3通道:1003H4通道:1004H5通道:1005H6通道:1006H7通道:1007H8通道:1008H9通道:1009H10通道:100AH11通道:100BH12通道:100CH13通道:100DH14通道:100EH15通道:100FH16通道:1010H(6)仪表主控输出状态地址:1通道:1101H2通道:1102H3通道:1103H4通道:1104H5通道:1105H6通道:1106H7通道:1107H8通道:1108H9通道:1109H10通道:110AH11通道:110BH12通道:110CH13通道:110DH14通道:110EH15通道:110FH16通道:1110H(7)仪表报警输出状态地址:1200HD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0 AL16AL15AL14AL13AL12AL11AL10AL9AL8AL7AL6AL5AL4AL3AL2AL13.1).上位机对仪表写数据的程序部分应按仪表的规格加入参数限幅功能,以防超范围的数据写入仪表,使其不能正常工作,各参数代码及范围见《仪表说明书》2).上位机发读或写指令的间隔时间应大于或等于0.2秒,太短仪表可能来不及应答3).仪表未发送小数点信息,编上位机程序时应根据需要设置4).测量值为32767(7FFFH)表示HH(超上量程),为32512(7F00H)表示LL(超下量程)5).除了CRC校验字节低位在前外,其它所有双字节均高位在前,。
RTU通讯协议
RTU通讯协议协议名称:RTU通讯协议一、引言RTU通讯协议旨在规范远程终端单元(Remote Terminal Unit,简称RTU)与其他设备之间的通信方式和数据交换格式。
本协议适用于各类RTU设备,包括但不限于工业自动化、能源监测、环境监测等领域。
二、术语定义1. RTU:远程终端单元,指用于监测、控制或采集数据的设备。
2. 主站:指与RTU通信的上位机或其他主控设备。
3. 从站:指RTU设备,作为主站的下级设备,接收主站的指令并返回数据。
4. 通信协议:指RTU与主站之间的通信规范,包括数据格式、通信方式等。
5. 数据帧:指通信中的数据单元,包含起始位、校验位、数据等信息。
三、通信方式1. 串行通信:RTU与主站通过串行通信方式进行数据交互。
通信速率、数据位、停止位、校验位等参数需在协商后确定。
2. 网络通信:RTU与主站通过网络通信方式进行数据交互。
通信协议可采用TCP/IP、UDP等协议。
四、数据交换格式1. 数据帧结构:通信数据帧由起始位、地址位、功能码、数据、校验位等组成。
具体格式如下:| 起始位 | 地址位 | 功能码 | 数据 | 校验位 ||--------|--------|--------|------|--------|| 1字节 | 1字节 | 1字节 | 可变 | 1字节 |2. 起始位:用于标识数据帧的开始,一般为固定值。
3. 地址位:用于指示从站的地址,主站通过地址位识别与哪个RTU进行通信。
4. 功能码:用于指示主站对从站进行的操作,如读取数据、写入数据等。
5. 数据:根据功能码的不同,数据可以是命令、状态、传感器数据等。
6. 校验位:用于校验数据帧的完整性,常用的校验方式包括CRC、LRC等。
五、功能码定义1. 读取数据功能码:主站向从站发送读取数据的请求,从站返回相应的数据。
常用的读取数据功能码包括:a. 读取状态:主站读取从站的状态信息。
b. 读取传感器数据:主站读取从站连接的传感器数据。
上位机通讯协议(RTU)
上位机通讯协议
采用主从应答式通讯方式,采用RS232通讯接口,支持RS232通讯和MODEM 专线和拨号通讯;波特率支持1200、2400、4800、9600,每帧10位(1位起始位、8位数据、1位停止位)。
* ADDR: 直流电源地址。
* LG: ADDR之后,SUM之前的数据总数。
* SUM: ADDR之后,SUM之前的数据代数和,SUML为低位,SUMH为高位。
2.1 10A系统定值定义:
2.2系统遥测量1定义:
2.3系统遥测量2定义:
2.5 5A系统遥信量定义:
2.7小系统遥测量定义:
2.9系统遥调量定义: DATA 定义:每个遥调量由3字节构成,第1字节为信号编号,第2字节为遥调量低字节,第
3字节为遥调量高字节,每次送1个遥调量。
直流系统接收遥调命令正确执行后返回ACKI 命令,否则返回NAK 命令。
2.10系统遥控量定义:
DATA 定义:每个遥调量由2字节构成,第1字节为信号编号,第2字节为遥控量(00H:信号置0,0FFH:信号置1)。
直流系统接收遥控命令正确执行后返回ACKI命令,否则返回NAK命令。
RTU通讯协议
RTU通讯协议采用主从应答式通讯方式,采用RS232通讯接口,支持RS232通讯和MODEM专线和拨号通讯;波特率支持1200、2400、4800、9600,每帧10位(1位起始位、8位数据、1位停止位)。
1、RTU下传报文:* ADDR: 直流电源地址。
* LG: ADDR之后,SUM之前的数据总数。
* SUM: ADDR之后,SUM之前的数据代数和,SUML为低位,SUMH为高位。
2、直流电源上传传报文:2.1 壁挂电源系统遥测量定义:2.2 壁挂电源系统遥信量定义:2.3壁挂电源系统遥调量定义:DATA 定义:每个遥调量由3字节构成,第1字节为信号编号,第2字节为遥调量低字节,第3字节为遥调量高字节,每次送1个遥调量。
直流系统接收遥调命令正确执行后返回ACKI 命令,否则返回NAK 命令。
2.4壁挂电源系统遥控量定义:DATA 定义:每个遥调量由2字节构成,第1字节为信号编号,第2字节为遥控量(00H:信号置0,0FFH:信号置1)。
直流系统接收遥控命令正确执行后返回ACKI 命令,否则返回NAK 命令。
DL451-91(CDT)通讯规约采用RS232通讯接口; 波特率支持1200、2400、4800、9600,字符格式10位(1位起始位、8位数据、1位停止位)。
1.帧定义1.1.帧结构1.2.同步字发送:EBH 90H EBH 90H EBH 90H,共6个字节。
1.3.控制字控制字共有B7 – B12 共6个字节,定义如下:1.3.1.控制字节控制字节定义如下:E:扩展位,E=0 表示使用本协议已定义帧类别码,E=1帧类别码可自定义,本协议中总为0L:帧长定义位,E=0 表示本帧无信息字,E=1 表示本帧有信息字,本协议中总为1S:源站地址有效D:目的站地址有效(上行信息中,S=1,D=1,源站地址为直流设备设置地址,目的站地址为上位机地址,固定为01H。
)(下行信息中,D=1, 目的站地址为直流设备设置地址)1.3.2.帧类别码帧类别码定义如下:1.3.3.信息字数信息字数n表示该帧中所含信息字数量;n=0表示本帧无信息。
Modbus通讯命令说明
Modbus通讯命令说明
仪表可以采用Modbus-RTU模式进行上位机通讯,协议格式为:8个数据位、1个停止位、无校验位,发送接收数据都是以十六进制格式进行。
1、发送数据格式
说明:
1)参数的通讯地址用一个字节表示时,对应A2位置,A1默认为00H。
2)03、04指令均为读命令,其中04对应的数据不可写入,03与06地址对应参数地址,一个读取、一个写入。
3)A1、A2与A3、A4组成两个双字节的数据,CRC校验码是一个双字节数据,所有的数据都是高位在前,低位在后。
4)03、04指令读取数据时,A1、A2为开始读取的地址,A3、A4为连续读取数据的个数。
5)06指令中,A1、A2需要写入数据的地址,A3、A4表示要写入的数据。
2、返回数据格式
1)06指令写入数据时,发送与返回的数据一致。
2)03、04指令返回时局格式
说明:返回数据字节数为:N*2
3、上位机连续下写数据位10指令,支持此指令的仪表有XM708、XM808、XM908、XM707P、XM808P、XM908P、XMH、XMA、XMS、XMT、XMJM。
10指令发送数据格式举例为:
附:
C# XOR CRC16 校验码计算类
C# 带多项式参数的 CRC16计算
C#超级通信调试工具[v1.0][全新发布]。
基于Modbus RTU通讯协议的上位机软件实现
【 键词 】 Mo b s U 协议 , 关 : d u RT 串口通 信 , lh 编程 De i p
0、 言 引
包括 H1 P和 X T r ML在 内的开 放 的 It n t ne e 协议 .同 时 r
取 输 人 状 态
F n t nR a H lR g(C u ci ed od e p md: R  ̄D tC d :nee; / o T e aa m 1 itgr / , 读取 保
持 寄 存 器
验 通 常 有 以下 几 种 : R 一 6 ( 国 标 准 ,传 8 i ; C C1 美 bt ) C C 1 ( 6 i ; R — CT ( R 一 2 传 bt C C C I r 欧洲标 准 ,传 8 i ; ) bt )
C C校验码 R
Mo b s 议是 一 种工业 通 信 和分 布式控 制 系统 协 du 协 议 。 此协 议 上 , 制 器相 互 之间 可 以经过 网络 和其 他 在 控 每 次 通讯 信 息 帧 的第 1字 节是 地 址 码 .取 值 从 0 设 备 通信 。 d u 协 议定 义 了一个 控 制器 能够 识 别使 到 2 5 Mo b s 5 从机 都有一 个 唯一 的地 址码 , 合 用户设 置 的 符
验 。 C C( yl R C ci -
c d n ac — Re u d n y
m
m
_
D v e d r: c a; ei A d p hr c
_
po C mmB f : r y【. X_ A A_ E 一 】 fb t;/ 文 存 储 u ar o. a MA D T L N 1 o y e / 报
到上位机的通讯协议
到上位机的通讯协议
上位机与下位机之间的通讯协议通常是通过串行通讯或者网络
通讯进行的。
串行通讯协议包括常见的RS-232、RS-485、Modbus等,而网络通讯协议则包括TCP/IP、UDP、HTTP等。
这些通讯协议在工
业控制、自动化领域中被广泛应用。
在串行通讯中,RS-232是一种较为常见的标准,它定义了串行
通讯的物理接口和信号规范。
RS-485则是一种多点通讯的标准,适
用于远距离通讯和多节点通讯。
Modbus是一种常见的工业领域通讯
协议,包括Modbus RTU和Modbus TCP两种形式,用于在工业控制
系统中传输数据。
在网络通讯中,TCP/IP协议是互联网和局域网中最常见的协议
之一,它提供了可靠的、面向连接的数据传输。
UDP协议则是一种
无连接的通讯协议,适用于实时性要求较高的数据传输。
HTTP协议
是超文本传输协议,用于在客户端和服务器之间传输超文本。
除了上述常见的通讯协议外,还有许多其他的通讯协议,如
CAN总线、Ethernet、Profibus等,它们在不同的应用场景中发挥
着重要作用。
总的来说,不同的通讯协议适用于不同的应用场景和需求,选择合适的通讯协议对于建立可靠的上位机与下位机通讯至关重要。
基于RS485 Modbus RTU的上位机通讯软件实现
基于RS485 Modbus RTU的上位机通讯软件实现最近碰到个项目需要配合仪表厂家对S7 200 PLC做上位机通讯软件的开发,由不是搞代码专业的,在网上搜了一堆的资料,总算也是可以把东西做出来了,抽空做了一个小的Demo,在这里也跟大家分享一点点经验,作为自己的总结,也以期能给后来人带来稍许启发。
首先,既然是基于RS485 Modbus RTU通讯协议的软件,我们肯定需要对它有一定的了解,很多人可能会去搜Modbus协议的标准文件,当然我也是,说实话这个文件实在是太长了,看完之后说实话对我的帮助也有限,在这里我推荐大家去百度文库里看一篇文章:《MODBUS规约与报文解析详细说明》,因为我没有下载券了,所以没法放在附件里了,里面很简洁、明了的介绍Modbus的内容以及相应的报文格式,这个报文格式对编写上位机软件是对我帮助最大的,大家把这个看一下应该比我做大篇幅的介绍要好的多,这里我就不说了,只把上位机读取PLC里V区变量(即保持型寄存器)的流程简单说一下。
我们通常的做法是把仪表测量的信号通过4-20mA传入PLC,再把相应的AIW传给我们分配的VW,上位机发送读取对应VW区的报文,下位机(从站,也就是我们的PLC)接收指令之后会给出响应,反回一条信息给上位机,然后上位机对相应的报文做解析。
其他读取I区,Q区,写入V区的原理大概相同。
好了,了解Modbus报文格式以及相应的流程之后,我们需要做的就是与S7 200 PLC 通讯了,以CPU224xp为例,它有两个RS485通讯口,分别为port0和port1,其中做主站port0,port1都行,做从站只能用port0,这里因为是通过上位机控制PLC,所以我们选择plc 为从站就可以了,开发的时候用RS232/RS485的s7 200编程电缆把电脑与PLC连上就行了,硬件的连接很简单,接下来就是s7 200的编程了。
不过在开始之后我还是建议大家去看一下S7 200关于Modbus通讯的官方文档介绍,百度搜s7 200 Modbus关键字,第一条就是,可能大家看完之后我下面关于s7 200的编程就可以略过了。
Modbus RTU 标准通讯协议格式
HLP_SV Modbus RTU 标准通讯协议格式通信资料格式Address Function Data CRC check8 bits 8 bits N×8bits 16bits1)Address通讯地址:1-2472)Function:命令码8-bit命令01 读线圈状态上位机发送数据格式:ADDRESS 01 ADDRH ADDRL NUMH NUML CRC注: ADDR: 00000 --- FFFF(ADDR=线圈地址-1);NUM: 0010-----0040 (NUM为要读线圈状态值的二进制数位数)正确时变频器返回数据格式:ADDRESS 01 BYTECOUNT DA TA1 DA TA2 DA TA3 DA TAN CRC注: BYTECOUNT:读取的字数错误时变频器返回数据格式:ADDRESS 0X81 Errornum CRC注: Errornum为错误类型代码如:要检测变频器的输出频率应发送数据:01 01 00 30 00 10 3D C9(16进制)变频器返回数据:01 01 02 00 20 B8 24(16进制)发送数据:0030hex(线圈地址49)返回的数据位为“0020”(16进制),高位与低位互换,为2000。
即输出频率为303(Max Ref)的50%。
关于2000对应50%,具体见图1。
03读保持寄存器上位机发送数据格式:ADDRESS 03 ADDRH ADDRL NUMH NUML CRC注:ADDR: 0 --- 0XFFFF;NUM: 0010-----0040 (NUM为要读取数据的字数)ADDR=Parameter Numbe r×10-1正确时变频器返回数据格式:ADDRESS 03 BYTECOUNT DA TA1 DA TA 2 DA TA 3 DA TAN CRC 注: BYTECOUNT:读取的字节数错误时变频器返回数据格式:ADDRESS 0X83 Errornum CRC如:要读变频器参数303的设定值应发送数据:01 03 0B D5 00 02 95 BC (16进制)Parameter 303(3029)=0BD5HEX变频器返回数据:“:”01 03 04 00 00 EA 60 B5 7B返回的数据位为“00 00 EA 60”(16进制)转换为10进制数为60000,表示303设置值为60.000※当参数值为双字时,NUM的值必须等于2。
直流电源柜modbus rtu 通讯协议
直流屏与上位机通讯协议(工控机)
通讯协议:MODBUS RTU
通讯口设置:RS-485,9600波特,无校验,8 位数据,1个停止位; 一.遥测
支持Modbus功能3(读保持寄存器,参照表1。
)
请求的格式是:
addr 03 start_word (MSB,LSB) word_count (MSB,LSB)
start_word 是请求的第一个字的地址偏移(基于0)
word_count 是请求的数目。
返回的格式是:
支持Modbus功能6 (写单路保持寄存器)。
请求的格式是:
addr 06 start_word (MSB,LSB) data (MSB,LSB) start_word是设定量或命令地址
data (MSB,LSB) 是遥设数据或命令。
(参照表2)
响应的格式根请求的格式一样
支持Modbus功能1或2(读一路或多路报警量和状态量)请求的格式是:
addr 01(02) start_bit(MSB,LSB) bit_count(MSB,LSB)
start_bit是第一个请求的输入/输出位(基于0)
bit_count是请求的输入/输出数
响应的格式是:。
通讯协议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 位
modbus协议各表详细说明
1CH
…… T10
第十段曲线的运行时间
(3)曲线运行状态参数地址:16H,将此数据转换为二进制格式,共有 16 位(0~15),其中的 2、3
位用于曲线的 Stop/Run/Hold 控制
运行状态
Stop
Hold
Run
数据位数
2
1
1
0
3
1
0
0
2、04 指令参数地址
地址
00H
01H
02H
03H
04H
05H
Modbus 通讯协议说明
Modbus 通讯协议介绍
仪表可以采用 Modbus-RTU 模式进行上位机通讯,协议格式为:8 个数据位、1 个停止位、无校验
位,发送接收数据都是以十六进制格式进行。
1、发送数据格式:
发送字节
1
2
3
4
5
6
7
含义
地址
读/写
A1
A2
A3
A4
CRC
仪表地址 03H,04H,06H
仪表通讯波特率
/
dF
报警回差
05H
dL
输入数字滤波
17H
oPAd
PID 控制方式
06H
mAn
运行状态
18H
P
速率参数
07H
Loc
参数密码锁
19H
I
保持参数
08H
SET1~8
现场参数 1~8
/
dt
滞后时间参数
09H
CSC
热电偶冷端修正
81H
T
控制周期
0AH
SF
超限抑制参数
82H
MODBUS-RTU通讯协议
智 能 显 示 仪 表RS-485MODBUB 通讯协议(RTU)一、RTU 模式1、RTU 字节格式:每字节11位;起始位1位,数据位8位,停止位2位。
由第1位起始位,第2~9位数据位,第10~11位停止位组成,低位在前,高位在后。
2、编码系统:8位二进制。
3、波特率:9600bit/s 。
4、帧校验域:循环冗余校验(CRC),对全部报文内容执行校验。
CRC 先低位后高位,其余所发送字节时均是先高位字节后低位字节。
二、寄存器地址及定义序号寄存器地址数据含义1 0000-0002累积流量:前3个字节为累积流量16进制整数部分,后3个字节为累积流量16进制小数部分,即******.******。
2 0003-0004瞬时流量:前2个字节为瞬时流量16进制整数部分,后2个字节为瞬时流量16进制小数部分,即****.****。
三、功能代码读寄存器数据 主站请求帧: 地址 1字节功能码 1字节 0x03起始地址 2字节 0x0000~0x0005 寄存器数量 2字节 1~0x06 CRC 校验 2字节从站响应帧: 地址 1字节功能码 1字节 0x03字节数 1字节 2×N (寄存器数量) 寄存器值 2×N 字节 CRC 校验2字节四、数据格式:1、主站请求发送帧格式(上位机到仪表)。
主站发送帧为8字节。
第1字节 第2字节 第3-4字节 第5-6字节 第7-8字节仪表地址 功能码(03) 寄存器起始地址 寄存器数量2、从站响应帧格式(仪表到上位机)第1字节 第2字节 第3字节 第4-6字节 第7-9字节仪表地址 功能码(03) 发送数据字节数 累积流量(整数) 累积流量(小数) 第10-11字节 第12-13字节 第14-15字节瞬时流量(整数) 瞬时流量(小数)RS-485输出的流量数据为二进制数,累积流量的单位为m 3;瞬时流量的单位为m 3/h 。
五、示例:(假设地址为28)读寄存器数据(此例中将当前表头显示的累计流量或瞬时流量数据读出,可根据需要读出一定数量的寄存器)。
modbusrtu上位机库函数
modbusrtu上位机库函数摘要:1.Modbus RTU 简介2.上位机库函数的作用3.Modbus RTU 上位机库函数的具体功能4.Modbus RTU 上位机库函数的使用方法5.Modbus RTU 上位机库函数的优点和局限性正文:一、Modbus RTU 简介Modbus RTU 是一种串行通信协议,主要用于工业自动化领域。
它是由Modicon 公司于1979 年开发的,现在已成为工业通信领域的标准之一。
Modbus RTU 协议采用主从通信模式,支持多点通信,具有传输速度快、可靠性高、扩展性强等特点。
二、上位机库函数的作用上位机库函数是指用于开发上位机软件的一组函数库,主要负责与下位机通信,实现对下位机设备的监控和控制。
通过上位机库函数,开发人员可以简化编程工作,提高开发效率。
三、Modbus RTU 上位机库函数的具体功能Modbus RTU 上位机库函数主要包括以下功能:1.连接建立:用于建立与下位机的通信连接。
2.数据读取:用于从下位机读取数据,例如采集传感器的值、查询设备状态等。
3.数据写入:用于向下位机写入数据,例如控制设备动作、修改设备参数等。
4.错误处理:用于处理通信过程中的错误,例如检查数据传输的正确性、处理通信异常等。
5.通信中断处理:用于处理通信过程中的中断,例如硬件故障、通信超时等。
四、Modbus RTU 上位机库函数的使用方法要使用Modbus RTU 上位机库函数,首先需要安装相应的库文件,然后按照库函数的接口规范进行编程。
以下是一个简单的示例:```c#include "modbusRTU.h"int main(){// 连接建立ModbusRTU_Init();// 数据读取float value = ModbusRTU_ReadHoldingRegisters(0, 10);// 数据写入ModbusRTU_WriteSingleRegister(0, 10, 100.0);// 通信中断处理ModbusRTU_ProcessInterrupts();// 通信关闭ModbusRTU_Close();return 0;}```五、Modbus RTU 上位机库函数的优点和局限性Modbus RTU 上位机库函数的优点包括:1.节省开发时间:通过使用库函数,开发人员无需从零开始编写通信代码,可以快速实现上位机与下位机的通信。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上位机通讯协议
采用主从应答式通讯方式,采用RS232通讯接口,支持RS232通讯和MODEM 专线和拨号通讯;波特率支持1200、2400、4800、9600,每帧10位(1位起始位、8位数据、1位停止位)。
* ADDR: 直流电源地址。
* LG: ADDR之后,SUM之前的数据总数。
* SUM: ADDR之后,SUM之前的数据代数和,SUML为低位,SUMH为高位。
2.1 10A系统定值定义:
2.2系统遥测量1定义:
2.3系统遥测量2定义:
2.5 5A系统遥信量定义:
2.7小系统遥测量定义:
2.9系统遥调量定义: DATA 定义:每个遥调量由3字节构成,第1字节为信号编号,第2字节为遥调量低字节,第
3字节为遥调量高字节,每次送1个遥调量。
直流系统接收遥调命令正确执行后返回ACKI 命令,否则返回NAK 命令。
2.10系统遥控量定义:
DATA 定义:每个遥调量由2字节构成,第1字节为信号编号,第2字节为遥控量(00H:信号置0,0FFH:信号置1)。
直流系统接收遥控命令正确执行后返回ACKI命令,否则返回NAK命令。