回复:西门子PLC与发那科机器人走ModbusTCP通讯不需要转换高低位的方法

hhyx9

  • 帖子

    1116
  • 精华

    22
  • 被关注

    45

论坛等级:奇侠

注册时间:2015-04-11

钻石 钻石 如何晋级?

发布于 2026-01-31 17:49:28

9楼

展开查看
以下是引用Mr周工解梦在2026-01-28 10:32:44的发言 >0楼
  1. 如果使用传统的绝对地址发送或者接收,是需要高低字转换后再发送或者接收的,如下图


  2. 不需要转换的方法:创建一个FB块,在静态变量里创建两个字类型的数组用于发送和接收


  3. 创建完成后可以用片段访问直接对位进行读写,不需要高低字反转




FANUC走PN与西门子PLC通信最大128字节,更合理的方法是接收的所有数据先SWAP后映射给PLC程序使用,PLC程序逻辑处理完成后再将需要发送给FANUC的数据做SWAP后发出,即收一起SWAP,发一起SWAP,或者干脆解耦后通信程序和控制程序分离

一段放在FB头上,接收映射

// FOR #i := 0 TO 64 BY 1 DO

//     POKE(area := 16#84,

//          dbNumber := 27,

//          byteOffset := #i * 2,

//          value := SWAP(PEEK(area := 16#84, dbNumber := 26, byteOffset := #i * 2)));

// END_FOR;

一段放在FB尾部,转换后发出

// FOR #i := 0 TO 64 BY 1 DO

//     POKE(area := 16#84,

//          dbNumber := 29,

//          byteOffset := #i * 2,

//          value := SWAP(PEEK(area := 16#84, dbNumber := 28, byteOffset := #i * 2)));

// END_FOR;

一位位拆成位片段进行片段访问不是脱_了_裤_子_放_屁,多次一举吗,128Byte都这么去写?因为你SWAP后的数据本来就是直接可以用了

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11107条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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