石嘴山市网站建设_网站建设公司_定制开发_seo优化
2025/12/25 20:36:39 网站建设 项目流程

FX5U Active Socket TCP通讯FB 功能块 有几个通道,就拖几个FB,FB里面全部用的相对地址,相互之间不受干扰。 通道0~7 共8个。 使用的是上电直接SM402自动连接, 如果需要手动请自己增加一个input/output引脚。 FB开放,需要增加什么功能,可以直接修改FB块梯形图。 使用时请注意设置下以太网参数,FB程序并未设置以太网参数.

这个三菱FX5U的Active Socket TCP通讯功能块挺有意思的。搞过PLC通讯的老铁都知道,多个通道独立运行还不打架,这设计就挺省心的。咱们今天就拆开看看怎么玩转这个功能块。

直接上干货吧。比如说你要做四台设备同时通讯,直接在程序里拖四个FB_ActiveSocketTCP实例就行。每个实例自己带地址偏移,根本不用操心地址冲突。像这样:

// 通道0初始化 FB_ActiveSocketTCP_0( EN := SM402, Channel := 0, Socket := 1, Connect := TRUE, ... ); // 通道1初始化 FB_ActiveSocketTCP_1( EN := SM402, Channel := 1, Socket := 2, Connect := TRUE, ... );

重点看这个Channel参数,0~7随便选,每个通道对应独立的Socket编号。我试过同时跑满8个通道,每个通讯间隔设成500ms,数据收发完全没出现交叉错乱的情况。

自动连接这个设计挺讨巧的。SM402是上电脉冲,直接拿来当触发信号。不过实际项目里建议自己加个手动开关,比如这样改:

|--[Manual_Start]--[POS]--[SET M100]--| |--[M100]--------[FB_ActiveSocketTCP]--|

加个M100寄存器当手动启动标志,想什么时候连就什么时候连。特别是设备需要热重启的时候,这个功能能救命。

说到地址偏移,功能块内部用了一堆变址寄存器(Z0-Z7)。比如数据接收区用D100Z这种格式,实际运行时Z值自动根据通道号变化。相当于:

  • 通道0 -> Z=0 -> D100
  • 通道1 -> Z=20 -> D120
  • 通道2 -> Z=40 -> D140

每个通道间隔20个寄存器,这个间距足够存放常规报文了。不过你要是处理大数据包,记得改改偏移量参数,别让数据越界了。

最坑的是以太网参数设置。第一次用的时候傻等了半小时,后来才发现这功能块根本不带网络配置!必须在导航窗口的"以太网端口设置"里手动填IP和端口号。建议直接照这个配置:

  1. 协议选TCP
  2. 操作模式选Active
  3. 目标IP填对方设备的地址
  4. 端口号建议用5000以上的数值

最近给产线升级时发现个骚操作:把功能块复制到库文件里,添加自定义的错误计数器。比如在FB里加个:

IF NOT ConnectionStatus THEN ErrorCounter := ErrorCounter + 1; END_IF

这样每个通道的通讯异常次数直接可视化,维护的时候一眼就能定位问题通道。这种开放式的设计确实挺方便二次开发的。

最后提醒下,用GX Works3在线监控时,建议把8个通道的收发数据区做成结构体。比如给通道0定义个SocketData_0的结构体,里面包含Header、Body、CRC这些元素,调试时直接展开看结构,比看一堆离散寄存器舒服多了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询