MODBUS道?诉?及?诉?及?置道立?道?诉?及?诉?及?置道立?道?诉?及?诉?及?置道立?道?诉?及?诉?及?置道立?
MODBUS 道?诉?及?诉?及?置道立?�
ModBus 道?诉?及?诉?动而从?RTU 及?诉?响?ASCII 及?诉?:?把诉写?响?的?始?种?例操被?重相重?电?ModBus RTU 道?诉?及?诉?:?从?面?
尾?ModBus RTU 及?诉?算?规?从?绍?始?从?:?
从立、?道?诉?及?诉?
:?从立:?、?道?诉?例骤道算方?必规:?
� � 道?诉?例骤道算动而从?环是立?的?储寄息?始?:?响?响、道算的?置道码算方?控?、?例必从?的?道?诉?例骤道算方?必规寄?从?从?从被MODBUS RTU 道?诉?
规?绍?相?写?寄?:?
置道 码算 8 例?从?道唯动?
起?始?例? 1 例?
方?控?例? 8 例?
始?储?检高骤?例? 1 例?:?储?检高骤?例?:?
储?每?例? 1 例?
长?读?检高检? CRC:?写?例?必?环?码算:?
动面始?置 果? = ≥4 寄?节?的?是点集?
均?均?码算 = 1 寄?节?
动?能相码算 = 1 寄?节?
方?控?及? = N 寄?节?
长?读?检高检? = 16 例?CRC 码算
置 果?置 果? = ≥4 寄?节?的?是点集?
� � 均?均?码算:?均?均?码算从?道?诉?例骤道算的?算?从立从?寄?节?、?道及从?寄?节?被?是被电?电?把?诉?寄?均?均?码算的?从?果?尾而控?方?电?从?果?响、道算
果?的?储寄息?、?度?从?每?从?从?果?重相果?写?果?唯?从立的?均?均?码算:?度?从?响?度?均增道算均?例必响绍节操的?均?均?码算必立始?、?从?果?响、道算的?均?均?
码算被?是被尾而响、道算动?的?从?果?均?均?:?而?从?果?响、道算的?均?均?码算被?是被均增道算的?从?果?均?均?、?
� � 动?能相码算:?道?诉?例骤道算的?算?从?从?寄?节?、?ModBus 道?诉?规?绍?寄?从?动?能相响然从?1 动?127、?果?例操被?响操动?电?写?从?的?从立
重把动而动?能相码算、?例?从?从?果?读然没?响、道算:?道?过?动?能相码算响?诉?从?果?把?被?从?从?动?例?、?例?从?从?果?响?度?:?从?果?响、道算的?动?能相码算
从被从?从?果?响、道算果?的?动?能相码算从立检?:?度?被?是被从?果?度没响?度?从?果?道唯被?操?例?、?始?果?从?果?响、道算的?动?能相码算的?果立高动例?从?:?(没从
始?动?能相码算始?从被每?响?是点127):?动?被?是被从?果?没?果?响?度?操?例?把道响、道算动理长?、?
� � 方?控?及?:?方?控?及?是?检?控?从?响?的?动?能相码算而?从?响?、?方?控?及?响?例必是?寄?集?方?储?、?诉?置?点?、?从?果?响、道算置及从?果?把道从?
果?响、道算置及从?果?的?均?均?、?
� � CRC 码算:?从?寄?节?的?长?读?检?测?码算、?
:?从?:?、?道?诉?规?绍?:?
www.plczone.com
� � 必?道?诉?响?例度响、道算节测例操噪?是点:?算?响节相?度?均?均?码算的?诉?始能控?道?诉?响?例度:?度?集?及?均?均?码算:?读电响储储寄息?:?始?果?没?果?
动理长?:?动?把?被?相?度?的?例电动?:?然?响被把?把?被?置 果?道从道算置及响、道算而置、?道从道算的?储寄息?从?及置控是均?均?码算、?把?被?动?例?的?动?能相码算、?
把?被?动?例?响被置 果?的?方?控?例必及?长?读?检高骤?码算、?始?果?动理长?尾?从?响、道算例电例?储寄息?、?
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 码算从?的?方?控?响、道算、?
www.plczone.com
控?方?是点例?寄?节?均?动?、?
� � 诉?算?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)
www.plczone.com
� � 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;
www.plczone.com
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 码算长?读?动?方?、?道?诉?方?集?始绍理而算?、?
www.plczone.com
本文档为【MODBUS通讯协议及编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。