登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:关于西门子1200TCP通信

点击:968 回复:5

使用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
21-10-09 16:52
或者处理这样的数据,有没有什么其他的技巧?
21-10-09 16:55
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
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

引用 liuyang7946 在 2021/10/9 17:27:36 发言【内容省略】

你说的这个最省事的做法,是把每个需要发送的数据,单独调用TSEND进行单独发送吗?这样多次单独调用TSEND有没有什么弊端或限制?
21-10-11 09:38

引用 666-liuliu 在 2021/10/11 9:38:09 发言【内容省略】

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

工控新闻

更多新闻资讯