您现在所在的是:

西门子SIEMENS

回帖:5个,阅读:968 [上一页] [1] [下一页]
1218
666-liuliu
文章数:136
年度积分:50
历史总积分:1218
注册时间:2011/2/6
发站内信
发表于:2021/10/9 16:52:43
#0楼
使用TSEND指令,把SNED_DATA数据块中的数据发送给另一个PLC。SNED_DATA中定义了一个数组,一共100个元素,是byte类型的。具体看图片。通过直接改SNED_DATA中的数值,可以看到另一个plc中相应的数值,所以通信是正常的。我的问题是,如何把本地的bool或int等类型的变量的数据,传到SNED_DATA数据块中?
附件 2021-10-09_163929.jpg

附件 2021-10-09_164720.jpg



1218
666-liuliu
文章数:136
年度积分:50
历史总积分:1218
注册时间:2011/2/6
发站内信
发表于:2021/10/9 16:55:50
#1楼
或者处理这样的数据,有没有什么其他的技巧?
50
liuyang7946
文章数:245
年度积分:50
历史总积分:50
注册时间:2020/3/8
发站内信
发表于:2021/10/9 17:27:36
#2楼
DATA数组可以为INT(或者word),你想传送本地的bool或int等类型数据,如bool,就第一个数据data[0].x0=bool0,data[0].x1=bool1,data[0].x2=bool2,int的数据就直接更好处理了,对应就行了data[1]=int A,data[2]=int B


最省事就是直接操作使用这个SEND 数据就是了啊
+5
10298
339402782
文章数:3210
年度积分:56
历史总积分:10298
注册时间:2010/6/2
发站内信
2011国庆活动
发表于:2021/10/9 19:31:31
#3楼
1:两边建相同数据结构的的UDT,只不过一个建在发送,一个建在接收,直接用就成了;
2:TIA中可以对byte每个位,或者int的每个byte寻址,你可以这样做:
data[1].%x0:=M0.0,data[1].%x1:=M0.1
data[3]:=int.%b0,data[4]:=int.%b1
+5
1218
666-liuliu
文章数:136
年度积分:50
历史总积分:1218
注册时间:2011/2/6
发站内信
发表于:2021/10/11 9:38:09
#4楼
以下是引用liuyang79462021/10/9 17:27:36的发言:
DATA数组可以为INT(或者word),你想传送本地的bool或int等类型数据,如bool,就第一个数据data[0].x0=bool0,data[0].x1=bool1,data[0].x2=bool2,int的数据就直接更好处理了,对应就行了data[1]=int A,data[2]=int B


最省事就是直接操作使用这个SEND 数据就是了啊
你说的这个最省事的做法,是把每个需要发送的数据,单独调用TSEND进行单独发送吗?这样多次单独调用TSEND有没有什么弊端或限制?
10298
339402782
文章数:3210
年度积分:56
历史总积分:10298
注册时间:2010/6/2
发站内信
2011国庆活动
发表于:2021/10/11 10:09:24
#5楼
以下是引用666-liuliu2021/10/11 9:38:09的发言:
以下是引用liuyang79462021/10/9 17:27:36的发言:
DATA数组可以为INT(或者word),你想传送本地的bool或int等类型数据,如bool,就第一个数据data[0].x0=bool0,data[0].x1=bool1,data[0].x2=bool2,int的数据就直接更好处理了,对应就行了data[1]=int A,data[2]=int B


最省事就是直接操作使用这个SEND 数据就是了啊
你说的这个最省事的做法,是把每个需要发送的数据,单独调用TSEND进行单独发送吗?这样多次单独调用TSEND有没有什么弊端或限制?


这种每个调用TSend需要为每个通讯链接分配不同的ID号,会占用较多的通讯资源,每个CPU支持的TCPIP通讯资源是有限的

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004