我现在是与EASTRON 的SDM630 MODBUS电表通讯,搞了好几天一直通讯不上,看了他的说明书还是没有理解,不知道我发送数据发送到从站什么地址,没看懂说明CRC校验方法。问问大家我这个数据发送到从站什么地址?发送数据要不要加CRC校验?
我的发送数据从站地址为40001时通讯只有上电一瞬间通讯显示有反应,之后就没有反应了,也没提示错误,也收不到数据,然后我就改从站发送数据地址为30001,他就能收到一些数据但是提示错误4,数据也不对,求大神帮忙分析!
问题补充:
我现在想读取电表的数据,然后我发送命令给他不知道发到他的什么地址?我想读30001的数据我看电表说明书没看到他从站接收地址是多少,所以我就选择我读哪里的数据我就写命令到我这个数据地址30001.我读40001我就把地址写到40001,但是我读和写都设置为40001也收不到数据呀?请问大家以前做过的写命令是发送到从站的什么数据地址呢?我知道1XXXX和3XXXX不能写,但是我想读30001那我写命令到那个地址呢?
现在应该是通讯连接成功了,但是数据传输失败,发送的数据电表没识别,我是按照要求来发的, ( 从站地址-功能码位-地址起始位-请求寄存器数-错误请求),请问大家,如果CRC不用校验自动生成,那是不是我的最后的错误请求位是不是不用填了?我还有个疑问就是(1起始位+8数据位+1停止位)和我发送的命令( 从站地址+功能码位+地址起始位+请求寄存器数+错误请求)有什么关系呢?请教一下大家,谢谢!
图片说明:
最佳答案
说实话,这个不是一两句能讲清楚的。我搞过一回,没看懂,抛了,然后,闲来无聊,又搞搞,看懂了发送规则。我发你个案例看一看。我这是读,读40001和40002,用smart做的
CRC,是计算方法,你不需要搞懂,PLC的指令,会自动算CRC,或者,你把所有数据输入,然后,生成CRC代码。
现在,为了不让别人盗版我写的PPT,拿去卖(扎心),只贴图。有问题,就评论,看见我就会回复。
图片说明:
提问者对于答案的评价:
感谢,谢谢大家,是我的梯形图互锁有问题,通讯其实早就通讯上了,只是我接收到的数据是IEEE754格式数据,我用ASCII码转换不对就以为是数据乱码了,感谢大家的指导,谢谢,不过现在又遇到问题,关于对V存储器的未操作问题和IEEEE754的转换梯形图编些问题 ,还要继续研究一下 。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc365066.html