两个CPU如何实现数据交换?

在一个S7项目下创建2个CPU,而一个CPU需要利用另一个CPU的点
比如2#CPU想利用1#CPU的 I13.0这个DI点,怎样编程才能使2#CPU看到1#CPU的相应点?

最佳答案

不知道你用多少个信号需要传输,如果多的话就用通讯方式。
你的cpu通过什么方式和上位机连接的?
    我给你一个方法:通过tcp/ip方式传输数据。我是用315-2dp+cp343-1lean来实现的。首先在硬件组态的网络组态中点击一个cpu,然后在下面的窗口中双击local id插入一个iso-on-tcp connection,注意这个连接的block parameter参数中的id和laddr。在通讯编程中要用到的。然后编译保存网络。并分别下载到两个cpu中。
    然后cpu1用西门子做的fc5(ag_send)发送数据,cpu2用fc6(ag_recv)接受数据,发送接受的规则是慢发快收防止丢包,比如你在200ms中发送,100ms中接受因为是定时中断中发送接受的,所以发送功能和接受功能的act参数就都是1,就行了。id和laddr参数就是上面说的id和laddr参数。send引脚是你要发送的数据的起始地址和数据长度,len是是发送的数据长度和send引脚包含的那个数据长度一致就行了。剩余三个参数就不用我说了。
   ag_recv的ndr就是接收数据保存的起始地址和数据长度,这个长度要和发送的长度一致。其他就不用说了,你如果你不明白再看看这两个函数的说明就清楚了。

提问者对于答案的评价:
1

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc247569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午3:32
下一篇 2018年12月2日 下午3:32

相关推荐