1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG 1771-WG
ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就ModBus RTU协议简要介绍如下:
一、通讯协议
(一)、通讯传送方式:
通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUS RTU通讯规约相兼容:
编 码 | 8位二进制 |
起始位 | 1位 |
数据位 | 8位 |
奇偶校验位 | 1位(偶校验位) |
停止位 | 1位 |
错误校检 | CRC(冗余循环码) |
初始结构 = ≥4字节的时间
地址码 = 1 字节
功能码 = 1 字节
数据区 = N 字节
错误校检 = 16位CRC码
结束结构 = ≥4字节的时间
地址码:地址码为通讯传送的*个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有*的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的*高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。
CRC码:二字节的错误检测码。
(二)、通讯规约:
当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。
1. 信息帧结构
地址码 | 功能码 | 数据区 | 错误校验码 |
8位 | 8位 | N × 8位 | 16位 |
地址码:地址码是信息帧的*字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有*的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。
功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作
代码 | 含义 | 操作 |
03 | 读取数据 | 读取当前寄存器内一个或多个二进制值 |
06 | 重置单一寄存器 | 把设置的二进制值写入单一寄存器 |
数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。
错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。
注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。
2.错误校验
冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
CRC码的计算方法是,先预置16位寄存器全为1。再逐步把每8位数据信息进行处理。在进行CRC码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算。
在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0填补*高位。再检查低位,如果低位为1,把寄存器的内容与预置数相异或,如果低位为0,不进行异或运算。
这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相相异或,这个过程与以上一样重复8次。当所有的数据信息处理完后,*后寄存器的内容即为CRC码值。CRC码中的数据发送、接收时低字节在前。
计算CRC码的步骤为:
· 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器;
· 把*个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器;
· 把寄存器的内容右移一位(朝低位),用0填补*高位,检查低位;
· 如果低位为0:重复第3步(再次移位); 如果低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;
· 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
· 重复步骤2到步骤5,进行下一个8位数据的处理;
· *后得到的CRC寄存器即为CRC码。
3.功能码03,读取点和返回值:
仪表采用Modbus RTU通讯规约,利用通讯命令,可以进行读取点(“保持寄存器”) 或返回值(“输入寄存器” )的操作。保持和输入寄存器都是16位(2字节)值,并且高位在前。这样用于仪表的读取点和返回值都是2字节。一次*多可读取寄存器数是60。由于一些可编程控制器不用功能码03,所以功能码03被用作读取点和返回值。从机响应的命令格式是从机地址、功能码、数据区及CRC码。数据区中的寄存器数据都是每两个字节高字节在前。
4.功能码06,单点保存
主机利用这条命令把单点数据保存到仪表的存储器。从机也用这个功能码向主机返送信息。
二、编程举例
下面是一个用VC编写的ModBus RTU通讯的例子
(一)、通讯口设置
DCB dcb;
hCom=CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if(hCom==INVALID_HANDLE_VALUE)
{
MessageBox("createfile error,error");
}
BOOL error=SetupComm(hCom,1024,1024);
if(!error)
MessageBox("setupcomm error");
error=GetCommState(hCom,&dcb);
if(!error)
MessageBox("getcommstate,error");
dcb.BaudRate=2400;
dcb.ByteSize=8;
dcb.Parity=EVENPARITY;//NOPARITY;
dcb.StopBits=ONESTOPBIT;
error=SetCommState(hCom,&dcb);
(二)、CRC校验码计算
UINT crc
void calccrc(BYTE crcbuf)
{
BYTE i;
crc=crc ^ crcbuf;
for(i=0;i<8;i++)
{
BYTE TT;
TT=crc&1;
crc=crc>>1;
crc=crc&0x7fff;
if (TT==1)
crc=crc^0xa001;
crc=crc&0xffff;
}
}
(三)、数据发送
zxaddr=11;//读取地址为11的巡检表数据
zxnum=10;//读取十个通道的数据
writebuf2[0]=zxaddr;
writebuf2[1]=3;
writebuf2[2]=0;
writebuf2[3]=0;
writebuf2[4]=0;
writebuf2[5]=zxnum;
crc=0xffff;
calccrc(writebuf2[0]);
calccrc(writebuf2[1]);
calccrc(writebuf2[2]);
calccrc(writebuf2[3]);
calccrc(writebuf2[4]);
calccrc(writebuf2[5]);
writebuf2[6]=crc & 0xff;
writebuf2[7]=crc/0x100;
WriteFile(hCom,writebuf2,8,&comnum,NULL);
(四)、数据读取
ReadFile(hCom,writebuf,5+zxnum*2,&comnum,NULL);//读取zxnum个通道数据
可增加错误处理程序,如地址码错误、CRC码错误判断、通讯故障处理等。
欢迎来电咨询!
公司名称:厦门兴润星贸易有限公司
联系人:阳先生
手机:18030263579
电话:0592-6895320
传真:0592-6034581
QQ:1529928696
E-mail:1529928696@qq.com
全球疯狂*
ENDRESS + HAUSER MAGHANT DTI200-A14C5A *NEW OUT OF BOX*
endress hauser racksyst FMW-8170
Endress Hauser Liquiphant FTL51 FTL51-QGM2CB4E5C 53.5"
ENDRESS & HAUSER PMP75-RBC1PB1TBDBA TRANSMITTER
Endress Hauser Cerabar PMC133-1N1F2N6Q4R Pressure Transmitter NEW!
NEW ENDRESS & HAUSER FTL50-ATE2AA4E4A FLOWMETER
*NEW* Endress+Hauser Cerabar T PMP131-A3201Q4K PMP131 Pressure Transducer
Endress+Hauser FTL 360 Liquiphant II Level Switch
ENDRESS & HAUSER DC11TEN-AA1151HK31 USPP DC11TENAA1151HK3
ENDRESS & HOUSER MULTICAP No. DC11-RAGR1A1A11E --NEW--
ENDRESS & HAUSER FTM260-N4B USPP FTM260N4B
ENDRESS & HAUSER LSM1700 USPP LSM1700
ENDRESS & HAUSER FCO1655-01-SA-H2-00-2 USPP FCO165501SAH2002
ENDRESS & HAUSER FTL50H-ATC2AD4EA USPP FTL50HATC2AD4EA
ENDRESS & HAUSER LSC-1114 USPP LSC1114
Endress&Hauser ZL6351 Flow computer , used
NEW ENDRESS+HAUSER LIQUIPHANT II Sensor FTL 360-RGN2A4T NEW FREE USA Shipping
Ichibankuji Premium Haruhi Kyun Chara Endress Eight ver
Enlarge
ENDRESS+HAUSER CERABAR-M PMC41 0-1 bar Pressure Transmitters discount
ENDRESS + HAUSER FTL50H-ATE2AC4E4A *NEW OUT OF BOX*
Endress Hauser RIA450-S111 Process Indicator Loop
Endress-Hauser Hygrotwin 2850 Analyzer
Endress Hauser Liquiphant II FTL361 RTE2S54L FTL 361 Liquid Level Switch new
ENDRESS & HAUSER CPS41-2BB4ESA NSFP CPS412BB4ESA
ENDRESS+HAUSER LEVEL LIMIT SWITCH,P/N IPS10-D52A3AME
ENDRESS & HAUSER VIBRATROL PROBE No. LSM 1701 --NEW--
Level Switch Endress Hauser Liquiphant Level Switch with 18" SS Probe
Endress Hauser MYCOM-L Transmitter w/ TBF Resolver Servo Amplifier
ENDRESS & HAUSER ZA370 NSFP ZA370
ENDRESS & HAUSER FTM480Z USPP FTM480Z
ENDRESS & HAUSER FTE30-EAC1 NSPP FTE30EAC1
Endress Hauser RIA 261 -A24 Brand new
ENDRESS & HAUSER LSC 1110 LEVEL SWITCH ***XLNT***
Endress+Hauser Level Switch Soliphant II FTM30-D1BB1
ENDRESS & HAUSER ZL-6042-DE1860J7 USPP ZL6042DE1860J7
ENDRESS HAUSER HF Module FMR24x FMR250 71026572 Free Shipping!
ENDRESS+HAUSER MULTICAP FULLY INSULATED ROD PROBE DC11ES-EF1AH1BBMM1 *LOT OF 2*
ENDRESS & HAUSER FTL 361 USPP FTL361
ENDRESS & HAUSER FTE30-EA11 NSPP FTE30EA11
ENDRESS & HAUSER 8193 NSPP 8193
ENDRESS & HAUSER 50022315 NSPP 50022315
ENDRESS & HAUSER FTO1650-3-R-H2-1-N-N USPP FTO16503RH21NN
Endress+Hauser FCO1655-0C-SA-H2-00-1 FCO16550CSAH2001
ENDRESS + HAUSER SOLIPHANT II FTM30-D1BB1 *NICE*
ENDRESS & HAUSER LSM1700 PC VIBRATION CONTROL
ENDRESS+HAUSER PROMAG 30A/33A 33AT04-CH1FD81D21A
Endress+Hauser Promag 53 & Promag H Electromagnetic Flow Measuring System
Endress+Hauser RIA 450-S111 Process Indicator Loop
Endress Hauser FTM31-F5BB11 Soliphant II Level Limit Switch NEW F17 (801)
NEW ENDRESS HAUSER CERABAR-S PMC71-SAC1P6RAAU PRESSURE TRANSMITTER NEMA 4X,6P
Endress+Hauser Flowtec ZL 6970 PRECOM RACK EXIMAG
ONDYNE OXN ENDRESS - HAUSSER HYGRO PRO 1930 HYGROMETER
Endress Hauser Flowtec 315023-0200 Power Supply Board NEW H17 (817)
NEW FTL 370 Endress Hauser Nivotester
NEW ENDRESS HAUSER LIQUID LEVEL SENSOR LSM-1701
Endress+Hauser Temperature Sensor TR24-AA2ADGB000
ENDRESS HAUSER LS C1132 MODEL 1 LEVEL SWITCH 13IN PROBE 49701
Endress Hauser FTL50-AGM2AA2E6A Liquiphant M Sensor FTL50-AGM2AA2E6A
Endress & Hauser 50074276 ALPHALOG STRIP CHART Pap
Endress+Hauser XRI 1-A 220V 50/60Hz
3 VERY NICE ENDRESS+HAUSER LEVEL TRANSMITTER LTC1220
Endress+Hauser Pressure Sensor, Cerabar M PMP46
Endress Hauser Model RSG-10-A111A23BB Chart Recorder
ENDRESS & HAUSER FTL-365QAL7A16 USPP FTL365QAL7A16
ENDRESS & HAUSER FTU5060GPAXX NSFP FTU5060GPAXX
ENDRESS+HAUSER STIP-SCAN F 06/0190 TYPE SN NR CAS74
Enlarge
Endress+Hauser FTL-AGM2AA2E6A FTLAGM2AA2E6A Liquiphant M Sensor
Endress + Hauser Soliphant M FTM51-1GG2L7A32AA/NEW
ENDRESS & HAUSER LIQUIPHANT FTL 330L-RTS1C PROBE NEW
Endress + Hauser Amatur CPA250-A00
Endress + Hauser Cerabar S PMC71 HART Pressure Transmitter -15 150 Psi
Endress Hauser FTL260-3124 Liquid Level Switch ! WOW !
ENDRESS HAUSER LEVEL MEASUREMENT PROBE EC 27 Z E1 ENCL
ENDRESS & HAUSER FTC-422 NSFP FTC422
ENDRESS & HAUSER PTC31-A1A15H1AE1A NSPP PTC31A1A15H1AE1A
Endress Hausser Flowtech DMV6331 Swingwirl II -330 750
Endress Hausser Flowtech DMV6331 Swingwirl II -330 750
Endress+Hauser CPK9-NAA1B Cable pH/Redox Transmitters CPK 1-12 And Fixed Cables
NEW ENDRESS HAUSER RTD THERMOMETER TR62-FAAE3XH31
Endress & Hauser Pump Protection FTW 360-G1XGD1
Endress Hauser Vibratrol Level Switch LSM1702 USA
ENDRESS HAUSER LEVEL LIMIT SWITCH FEL50-H
Unused Endress Hauser iTEMP TMT 181 Head Transmitter TMT181-A41BA, 4-Wire, Pt100
Endress & Hauser CPM221-010 , used (CD010)
Endress Hauser FMU 860 Ultrasonic Transmitter Lot Price for two (2) 1 NS,1 Used
ENDRESS HAUSER LEVEL MEASUREMENT PROBE EC 27 Z E1 ENCL
Endress + Hauser - Liquiphant II-Model #FTL361-RTE2S54L
Endress Hauser DC11-GEGR2C1A11E Multicap Probe Sensor H18
ENDRESS + HAUSER RTA421-A22A *NEW IN A BOX*
ENDRESS+HAUSER 1943 107471294 VARIOMAX, NNB
ENDRESS & HAUSER 50052573 NSPP 50052573
ENDRESS & HAUSER RIA250-A11R21 USPP RIA250A11R21
ENDRESS & HAUSER FTL325N-F1E1 USPP FTL325NF1E1
ENDRESS HAUSER DU41C RA1A ULTRASONIC LEVEL MEASUREMENT SENSOR NEW
Endress + Hauser CPS12-0NA2ESA Liquid Analysis Sensor
Endress Hauser PMP131 A3301Q74 Pressure Transmitter
ENDRESS & HAUSER NT471-ROBO NSFP NT471ROBO
ENDRESS+HAUSER FMC661-N1A2A1 PROLEVEL TRANSMITTER
Endress+Hauser Level Switch Liquiphant II FTL360
Endress+Hauser Level Switch DC12TA-R6F2C1BMS2
NIB Endress & Hauser PMC45-RC11F4A1BR1 _ Pressure Transmitter _ PMC45RC11F4A1BR1
ENDRESS + HAUSER LEVEL TRANSMITTER LTC 1220 (1812)
ENDRESS + HAUSER MULTICAP PROBE DC11 RAGR1A1A11E 460MM 18.1" MADE IN GERMANY
ENDRESS & HAUSER FTC260-AA2D1 USPP FTC260AA2D1
ENDRESS & HAUSER MONO-R1A USPP MONOR1A
ENDRESS & HAUSER 942512-0100 NSFP 9425120100
ENDRESS & HAUSER LSC1136 USPP LSC1136
ENDRESS & HAUSER NX9120-GA USPP NX9120GA
ENDRESS & HAUSER FXA675 NSFP FXA675
ENDRESS & HAUSER 918151-0100 USPP 9181510100
ENDRESS & HAUSER 5145-A-J USPP 5145AJ
ENDRESS & HAUSER VBM-51500177 NSPP VBM51500177
ENDRESS+HAUSER FTI1943 VARIOMAG, NNB
Endress&Hauser CLM221-CD010 , used
Endress&Hauser CLM223-CD0005 , used
Endress&Hauser CLM223-ID0005 , used
Endress&Hauser CPM223-PR0005 , used
VARIOMAG E+H ENDRESS & HAUSER FLOW METER
Endress & Houser LTC1220 Level Transmitter (New)
Endress Hauser Hart pressure Transmitter PMP635 053L9M1DBR1 150 PSI Max
ENDRESS + HAUSER FTL50H-ATE2AD2E6A LEVEL LIMIT SWITCH IP66/67/NEMA 4X FEL 52 U+1
1- Endress + Hauser Prosonic FDU 84-UN6 Ultrasonic Sensor
ENDRESS HAUSER LIQUIPHANT M FTL51 EXPLOSION PROOF LEVEL SWITCH FEL54 NEMA 4X
Endress Hauser PMP75-AQC1P65AC2B9 Surge Protector
Endress& Hauser Liquiphant M FTL51C
OFFER & WIN- ENDRESS&HOUSER CPA250-A01 Armatur Flow Assembly
Endress Hauser Cerabar PMC635 Hart Transmitter C17 (817)
NEW ENDRESS HAUSER PMC133-0N1F2T6V6N RANGE -15 - 15 PSI
NEW NO BOX ENDRESS + HAUSER PC-FR INTERFACE DISPLAY
Endress Hauser E-1 Enclosure with 22" Teflon Coated Probe (no electronics)
ENDRESS + HAUSER CLD132-PMV130AA1 CLD132PMV130AA1 SMARTEC-S FLOW METER
Endress+Hauser Liquiphant 11 Type FTL 366 New
# Endress Hauser Cerabar Transmitter
ENDRESS HAUSER LEVEL MEASUREMENT PROBE LSC1120 E1 ENCL
ENDRESS+HAUSER CERABAR M PMC45-RC11F4A1BR1 NEW
Endress Hauser Cerabar T PMC131-A22F1Q4R pressure transducer
Endress Hauser Mycom-L CLM121-1MM80
ENDRESS & HAUSER FTW420-917077-0000 NSFP FTW4209170770000
ENDRESS & HAUSER FTW420-R0B0A-917077-0010 NSFP FTW420R0B0A91707
New Endress Hauser Pressure Transducer PMP 131-A1301A71
ENDRESS & HAUSER FTL330L-RPB2S NSFP FTL330LRPB2S
ENDRESS & HAUSER CPA450 USPP CPA450
Endress+Hauser FTL-AGM2AA2E6A FTLAGM2AA2E6A Liquiphant M Sensor
Endress+Hauser Nivotester FTL 325P 03E3
ENDRESS + HAUSER 0-1000 PSIG PRESSURE TRANSMITTER VU 130 C
ENDRESS HAUSER FTE 30 BA21 LEVEL LIMIT SWITCH C/W FLEXIBLE EXTENSION NEW BOXED
厦门市兴润星贸易有限公司主营:Schneider ,Foxboro,Ovatin,Allen-Bradley,Siemens等各类工控产品;欢迎与我们联系!
电脑版:1771-WG))超超超*……1771-WG








