quote:以下是引用dcount107在2008-06-01 09:52:29的发言:
你有没有订CP341 ModubsMaster硬件狗啊,如果有的话就不用计算校验码这么麻烦了。安装CP341_Modubus_Master软件包,Step7中有例子zXX21_04_PtP_Com_MODMA,按例子来做就可以。如果没有狗,则麻烦一些,需要多发送两个字节及CRC校验码,不过好在事先已经知道了CRC校验码。
1.一般来说一个循环周期只能调用一次FB7和FB8,因此通过轮询方式,依次改变发送区的内容,然后根据接收字节进行校验和计算。假设发送数据块为DB100,定义了8个字节的长度SND_BYTE ARRAY[1..8] BYTE。FB参数如下:
CALL "P_SND_RK" , "IDB_P_SND_RK"
SF :='S'
LADDR :=288
DB_NO :=100
DBB_NO :=0
LEN :=8
根据对方的通讯帧,SND_BYTE[2]...SND_BYTE[6]均为固定值,可直接赋值,而SND_BYTE[1]为地址、SND_BYTE[7]、SND_BYTE[8]为地址对应的校验码
根据循环周期依次改变SND_BYTE[1]、SND_BYTE[7]、SND_BYTE[8]内容,即可实现轮询发送。
2.对,需要自己根据返回的数据进行校验和数据提取
3.没有应用这么长距离的,不知道应该用什么样的中继器。在设备终端加电阻。
谢谢,如果有硬件狗,就只需要改变SND_BYTE[1],不需要管校验码,在组态时设下校验就行了是吧?校验一般是设奇校验还是偶校验,还是无校验?