资源描述:
《Modbus_Poll_使用说明》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ModbusPoll使用说明:1.破解按照文件中"注册过程.GIF"显示的方式即可完成注册。调试的时候,只需要使用mbpoll,因此只需完成mbpoll的注册。2.破解后,点击mbpoll图标,显示下面主窗口。如果没有没有子窗口,点击file->Newnote:NoConnection表示未和串口连接。3.建立,设置下面针对演示modbuspoll怎样调试ascii模式下功能01:readcoil(读线圈)ps:线圈(coil)是一个专业名称,我们可以把一个线圈为一位开关量,比如这次的课设中读线圈就
2、是读p2.0~p2.3的开关状态,写线圈就是控制p2.4~p2.7的Led的亮、灭。包括功能功能03060x10,量程上,下限,报警上下限,测量值是5个16位寄存器。1)点击菜单Setup->PollDefinition出现如上图Slave:表示从机的地址。(范围1-255,要与自己的从机的地址一致)Function:功能码的选择。(readcoil的功能码为01)Address:表示线圈的起始地址。(线圈的地址并不一定非要是物理地址(即单片机中p2.0~p2.7的在单片机中的实际地址),可以使用逻
3、辑地址,比如为0~7length:表示读取开关量的数量。ScanRate:可以先不管,按照默认设置。EnablePoll如图设置(打上勾)。点击OK2)点击菜单Connection–>connect出现如下图选上ASCII选项,左边的5个选项和“串口调试助手”设置一样。‘port4’即‘com4’其他选项按默认设置。点击OK如果调试程序正确的话(当然参数是按照上面设置的)出现下面图Tx=166:表示向主站发送数据帧次数,图中为166次;Err=0:表示通讯错误次数,图中为0次;9b/I8B*[.~9
4、{3m;{,C-vID=2:表示从机地址02,图中地址为2;/z((v!c,b(,@:X8]F=01:表示所使用的Modbus功能码,图中为01功能码;SR=1000ms:表示扫描周期。最下面的4行表示地址与对应线圈的状态,这是从从机获取的。ps:当然,刚开始调试的时候很有可能出现错误提示timeouterror:超时,很可能是单片机没有发送数据(响应帧)。crcerror:校验出错,在ascii模式表示lrc校验出错writeerror,bytemissingerror这些错误的原因都可在Co
5、mmunicationTraffic中查到随便提一提菜单Display2个功能1)最重要的功能是下面的CommunicationTraffic可以查看通讯数据帧,对单片机的程序调试有很好的帮助。点击Display->communication打开Tx:表示发送的数据帧(主机(电脑)->从机(单片机))Rx:表示接收的数据帧(从机->主机)如上图就是功能01下正常情况下的一种显示;ps:如果只有Tx,没有Rx说明单片机没有向主机发送响应帧。如果有RX选上stoponerr即停止,说明响应帧格式不对。0
6、00000-Tx:3A30323031303030303030303446390D0A表示发送的数据帧3A:是‘:’的ascii码,在ascii模式中当起始位。3032:分别是‘0’,‘2’对应的ascii码。3031:分别是‘0’,‘1’的ascii码。30303030:表示被读线圈的起始地址(16位),前2个数高8位后两个数表示低8位,因此起始地址是0X0000;如果起始地址是0x1234,主机发送的就是31323334了。30303034:表示读的线圈的个数(length16位),同样3030
7、表示高8位,3034是低8位。ps:以上设置与第2个图对应。4639:Lrc校验(8位)的对应16进制,高四位的ascii码,与低4位的ascii码。计算的方式:0x02+0x01+0x00+0x00+0x00+0x04=0x07取反0xF8加一0xF9‘F’对应的ascii码0x46‘9’对应的ascii码0x39.大概就是除去起始位3a,从开始2个一对组成一个2位16进制,相加,取反,加一。然后转换成2个ascii码。ps:这个软件中lrc校验的结果对应是A,B,C,D,E,F大写ascii码,
8、也就是说,比如算出的lrc校验结果是0xF9,问题是发送4639对应的是'F','9';还是发送0x660x09'f','9'对应的ascii码?这个调试软件选择是前者。所以在写单片机程序特别注意。lrc校验范例可以参考《modbus协议中文版》附录C0d0a:是回车换行符的ascii码。因此可根据0x3a,0d,0a判断1帧数据的开始与结尾。再根据协议的语法规则,也就知道了所有。000000-Rx:3A303230313031304645440D0A表示响应帧,左边