登录
首页
PLC论坛
西门子SIEMENS
回帖
发帖
正文
主题:关于西门子1200TCP通信
点击:968 回复:5
楼主
编辑
引用
管理
666-liuliu
使用TSEND指令,把SNED_DATA数据块中的数据发送给另一个PLC。SNED_DATA中定义了一个数组,一共100个元素,是byte类型的。具体看图片。通过直接改SNED_DATA中的数值,可以看到另一个plc中相应的数值,所以通信是正常的。我的问题是,如何把本地的bool或int等类型的变量的数据,传到SNED_DATA数据块中?
21-10-09 16:52
1楼
编辑
引用
管理
666-liuliu
或者处理这样的数据,有没有什么其他的技巧?
21-10-09 16:55
2楼
编辑
引用
管理
liuyang7946
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 数据就是了啊
21-10-09 17:27
3楼
编辑
引用
管理
339402782
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
21-10-09 19:31
4楼
编辑
引用
管理
666-liuliu
引用
liuyang7946
在 2021/10/9 17:27:36 发言
【内容省略】
你说的这个最省事的做法,是把每个需要发送的数据,单独调用TSEND进行单独发送吗?这样多次单独调用TSEND有没有什么弊端或限制?
21-10-11 09:38
5楼
编辑
引用
管理
339402782
引用
666-liuliu
在 2021/10/11 9:38:09 发言
【内容省略】
这种每个调用TSend需要为每个通讯链接分配不同的ID号,会占用较多的通讯资源,每个CPU支持的TCPIP通讯资源是有限的
21-10-11 10:09
工控新闻
华北工控BIS-6390ARA-D10:应急管理系统的“智慧大脑”
工信部:鼓励制造业企业深化对外投资合作
皮尔磁:小巧灵活高性价比的工业PC问世
全新升级两款探头,FLIR工业内窥镜让狭窄空间检测更深入、更高清!
后摩尔时代的创新:在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用
皮尔磁:分布式控制系统惊艳登场
施耐德电气:技术引领,场景驱动,让AI“触手可及”
国内首台电力场景人形机器人“揭开面纱”
更多新闻资讯