发布于 2008-09-10 22:45:23
0楼
使用SLAVE仿真软件“ModSim32.exe”,观察1号从站可以看到40001-40006分别被写入A,B,C,D,E,F。在该软件另开一个2号从站窗口观察,可以看到40001-40004分别被写入A,B,C,D。另开3号从站窗口,写入6个数据,31,32,33,34,35,36,在S7300相应单元看到6个数据被读回。另开4号从站窗口,写入3个数据,41,42,43,在S7300相应单元看到3个数据被读回。
完全是预想结果。根据自己的经验,只要这个步骤做通,与其他MODBUS通讯器件通讯没有问题(排除线路干扰)。尽管还有些实际通讯器材,没有继续往下做。
体会和小结:
CP341支持的12个MODBUS通讯功能,根据技术文档“Modbus_Master.pdf”第48页的说法,只有功能15和16是大于6字节的,其他都是固定字节数,因此只要掌握了03,16功能配置方法,执行其他功能的方法都是类似的。我的体会是如果使用一个FB8调用,不断修改源数据块(例如DB1)执行多种通讯功能,只要理解LEN与DB1数据长度的关系,修改源数据块(例如DB1)各个BYTE 的意义。同时注意执行功能16的时候,“DB1.DBW4”数据决定了实际发送代码长度,而不是LEN决定实际发送代码长度等这些关键点。正确通讯是非常实现的容易的。
FB8的LEN端口,可以直接输入数字,也可以使用MW单元,一般是不需要修改的。
运行速度。延时修改为1秒仍可以运行。和SLAVE仿真软件“ModSim32.exe”之间运行速度还是很快的。S7-300写一个数字,SLAVE仿真软件约两秒内可以看到修改。反之亦然。由于我是用一个PC机运行多个软件,观察数据有个画面切换问题,准确运行时间有待朋友们实践。
这段程序只有6个Network。如果有朋友需要可以发信到lysqy4906@163.com,我可以发给你们。只能起个抛砖引玉的作用,也是希望朋友们少走弯路。这些体会的取得是我和这里的朋友共同努力的结果,感谢万版和众位兄弟。