用PC上位机SOCKET TCP与S7-300 PLC通信

已锁定

Shenli198103

  • 帖子

    24
  • 精华

    0
  • 被关注

    1

论坛等级:游士

注册时间:2015-03-05

普通 普通 如何晋级?

用PC上位机SOCKET TCP与S7-300 PLC通信

3234

2

2018-07-24 14:20:35

最近用C++做了个应用,使用Socket TCP与S7-300 PLC通信。

PLC侧功能块用AG_SEND/AG_RECV,对于字符、整型(PC对应是short int)通信没有问题测试成功,且互发的数据都正确。

注:对于整型(2字节)要考虑大、小端字节序的问题。C++中调用ntohs()/htons()函数即可。


 但对于浮点型数据(4字节,IEEE 754标准)就碰到问题了,通信正常,可以接收到数据,但接收到的数据非传送的数据(数据不正确)。判断下来,基本应该也是大、小端的问题。但就不知道如何解决了?

难道只能在PLC端做移位操作?

求坛友赐教?

PS:所谓大、小端字节序,也就是字节在处理器中的存储循序,即:高8位/低8位的存储顺序。百度即知。

       但对于浮点(C++: float,PLC:real),就不能采用高、低8位对掉的方法解决问题了。附图IEEE 754单精度浮点的存储规则:



用PC上位机SOCKET TCP与S7-300 PLC通信 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54705条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。