请选择 进入手机版 | 继续访问电脑版

PLC部落-中国工控自动化电气专业网站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 3726|回复: 1

西门子PLC实现两个CPU数据交换

[复制链接]
发表于 2014-12-29 23:38:44 | 显示全部楼层 |阅读模式
     在一个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就是接收数据保存的起始地址和数据长度,这个长度要和发送的长度一致。其他就不用说了,你如果你不明白再看看这两个函数的说明就清楚了。
发表于 2015-6-28 19:36:21 | 显示全部楼层
这个好像挺简单的~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC部落 ( 津ICP备14000764号-1 )

GMT+8, 2024-4-19 01:59 , Processed in 0.112066 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表