jzzjzq
级别: 略有小成
精华主题: 0
发帖数量: 62 个
工控威望: 200 点
下载积分: 566 分
在线时间: 72(小时)
注册时间: 2013-03-15
最后登录: 2024-03-14
查看jzzjzq的 主题 / 回贴
楼主  发表于: 2018-07-16 10:56
最近写一个程序,有四台西门子S1200之间通过TCP协议互联,通讯的数据都是用字节发送,接受端使用这些数据时,却是以字或双字使用。目前我不了解的是
A  发送数据是否默认是字节?能不能本来是INT就发送INT?
B 如果原数据为INT,而只能发送字节,接受端使用这个数据时,是否只能用DBX.DBWX 这样的形式来引用?这样可以使用,但是会报无法通过变量来分配的警报。我感觉好似不是正规途径。
可能很基础,但是看手册没有找到相关的说明,还请各位帮助。
湛蓝小尔
工控交流 Q703935819
级别: 家园常客

精华主题: 0
发帖数量: 349 个
工控威望: 642 点
下载积分: 2096 分
在线时间: 80(小时)
注册时间: 2014-03-03
最后登录: 2024-04-12
查看湛蓝小尔的 主题 / 回贴
1楼  发表于: 2018-07-16 11:20
引用
引用楼主jzzjzq于2018-07-16 10:56发表的 西门子通讯后的数据要如何应用? :
最近写一个程序,有四台西门子S1200之间通过TCP协议互联,通讯的数据都是用字节发送,接受端使用这些数据时,却是以字或双字使用。目前我不了解的是
A  发送数据是否默认是字节?能不能本来是INT就发送INT?
B 如果原数据为INT,而只能发送字节,接受端使用这个数据时,是否只能用DBX.DBWX 这样的形式来引用?这样可以使用,但是会报无法通过变量来分配的警报。我感觉好似不是正规途径。
可能很基础,但是看手册没有找到相关的说明,还请各位帮助。


不是非得BYTE,参考我的帖子,TCP通讯,你找一下。
定义发送和接收的数组和ARRY,INT也是可以的。取消优化块的访问
本帖最近评分记录:
  • 下载积分:+2(jzzjzq) 真诚感谢!
  • 专心搞钱
    Q群943838323   博图
    Q群703935819   昆仑通态
    jzzjzq
    级别: 略有小成
    精华主题: 0
    发帖数量: 62 个
    工控威望: 200 点
    下载积分: 566 分
    在线时间: 72(小时)
    注册时间: 2013-03-15
    最后登录: 2024-03-14
    查看jzzjzq的 主题 / 回贴
    2楼  发表于: 2018-07-16 12:25
    引用
    引用第1楼湛蓝小尔于2018-07-16 11:20发表的  :

    不是非得BYTE,参考我的帖子,TCP通讯,你找一下。
    定义发送和接收的数组和ARRY,INT也是可以的。取消优化块的访问

    如果发送INT,指令里的LEN是否要乘2呢?另外,我的数据并不是很规整的INT或是BYTE,假如用BYTE发送了INT数据,要如何引用]呢?望赐教

    例如此图中的数据


    在引用时这样写是否正确

    [ 此帖被jzzjzq在2018-07-16 12:52重新编辑 ]
    湛蓝小尔
    工控交流 Q703935819
    级别: 家园常客

    精华主题: 0
    发帖数量: 349 个
    工控威望: 642 点
    下载积分: 2096 分
    在线时间: 80(小时)
    注册时间: 2014-03-03
    最后登录: 2024-04-12
    查看湛蓝小尔的 主题 / 回贴
    3楼  发表于: 2018-07-17 08:36
    你到底需要发送什么样的数据,我给你举个例子
    专心搞钱
    Q群943838323   博图
    Q群703935819   昆仑通态
    jzzjzq
    级别: 略有小成
    精华主题: 0
    发帖数量: 62 个
    工控威望: 200 点
    下载积分: 566 分
    在线时间: 72(小时)
    注册时间: 2013-03-15
    最后登录: 2024-03-14
    查看jzzjzq的 主题 / 回贴
    4楼  发表于: 2018-07-17 16:10
    引用
    引用第3楼湛蓝小尔于2018-07-17 08:36发表的  :
    你到底需要发送什么样的数据,我给你举个例子

    有Bit也有INT也有dint。
    所以统一按BYTE发的,现在的问题就是接收到以后,用那种方式引用收到的数据。我上贴中有图,请帮忙看一下是否正确。
    是否是这样的,比如A (PLC)发送到B(PLC)    12个BIT、5个BYTE,3个INT。那么在A的发送块 依次建立12个BIT、5个BYTE,3个INT。
    同样,在B(PLC)接收块里依次建立12个BIT、5个BYTE,3个INT,然后发送和接受指令的LEN长度都定为13个字节,这样是否正确?
    [ 此帖被jzzjzq在2018-07-17 16:27重新编辑 ]