| 作者 | 主题 |
|---|---|
|
老石 游民 经验值:93 发帖数:47 精华帖:3 |
楼主
主题:求教:CP341做MODBUS通讯(MASTER)是否只能调用一次FB8?
最近用CP341做MODBUS通讯(MASTER),调用FB8(P_SND_RK)背景数据块DB8,源数据块(source data area)DB1。通过修改FB8的LEN和DB1数据,主要实验了功能03,16,与从站通讯顺利。
但是想另建立一个有不同数据块的FB8(P_SND_RK),背景数据块DB10,源数据块DB11。试图分别执行功能03,16。尽管在两个FB8(P_SEND_RK)的EN端增加了控制位,但是结果是要么两个都不工作,或者有一个工作,另一个不工作。 我找不到介绍的资料。 那位有经验解释这是为什么。或者介绍正确的做法,感谢啦。 |
|
老石 游民 经验值:93 发帖数:47 精华帖:3 |
楼
主题:回复:求教:CP341做MODBUS通讯(MASTER)是否只能调用一次FB8?
使用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,我可以发给你们。只能起个抛砖引玉的作用,也是希望朋友们少走弯路。这些体会的取得是我和这里的朋友共同努力的结果,感谢万版和众位兄弟。 |