quote:以下是引用四书五经在2011-04-15 14:29:26的发言:
再仔细看了下S7通讯手册,背板总线(backplane bus)的速率是187.5 kBit/s 或者 10.5MBit/s。S7300的背板总线速度应该是187.5kbit/s,而且在CPU与CP,FM之间通讯采用异步SFC调用(一次调用需要多个扫描周期),并且SFC的调用个数有限制。
S7400的背板通讯速度应该是10.5MBit/s,而且CPU与CP,FM之间采和同步SFC调用,并且SFC的调用个数没有限制。
谢谢四书五经,又了解了一些知识.
所以,不一定是发送频率越高数据传送越快,因为300CPU同CP的通讯是异步的(400同CP之间的通讯应该也是异步的),一个调用要几个OB1扫描周期,所以如果发送频率过高,前一个过程还没有结束,就进行新的发送请求,由于"负担过重",要出现错误.所以发送前要检测当前循环中通讯完成情况及状态。 必要时利用完成状态被置位后作为前提条件(数据发送并被应答接收后),具备后再可以进行一个新的发送.例如DONE=0,ERROR=0,STATUS=0000H操作无错已经完成。
另外 ,编程时接收一方的确数据长度要不小于发送一方的数据长度(非TCP/IP连接),而对于TCP/IP连接来说,接收和发送方数据长度一定要相等,否则数据可能丢失或出错.