1. 为什么你需要掌握FX5U的Socket通信?
如果你正在用三菱FX5U系列PLC做项目,尤其是涉及到多台设备需要交换数据,比如一条产线上有多个工站,或者需要把数据汇总到一台主控PLC,那你肯定绕不开通信这个话题。传统的硬接线方式,比如用继电器或者信号线,在点数多、距离远的时候,不仅布线麻烦,成本高,后期维护也是个头疼事。而像Modbus TCP、CC-Link IE这些总线协议,虽然强大,但有时候配置起来也挺复杂,特别是当你只是想简单快速地让两台PLC“说说话”的时候。
这时候,Socket通信就像一把瑞士军刀,简单直接。你可以把它理解成两台设备之间直接“打电话”。一台PLC作为“服务器”(接电话的),设置好一个固定的“电话号码”(IP地址和端口号),然后等着;另一台PLC作为“客户端”(打电话的),知道对方的号码,直接拨过去,电话一通,数据就能开始传送了。这种方式不依赖任何特定的上层协议(比如HTTP、FTP),就是最底层、最纯粹的数据流传输,所以非常灵活。你想传什么数据、怎么解析,完全由你自己的程序决定。
我在实际项目中就经常用Socket通信来传递一些非标准的、自定义的数据包。比如,一台FX5U控制机械手,另一台控制传送带,机械手完成抓取后,需要告诉传送带“物料已到位,可以前进了”。这个信号用Socket通信来传递,只需要几个字节的数据,响应速度快,编程也直观。相比于去研究一套完整的工业总线协议,Socket通信的学习成本和实现门槛对很多工程师来说要友好得多。所以,掌握这项技能,能让你在解决设备间数据互通问题时多一个高效、可靠的选择。
2. 动手之前:搞懂核心概念与硬件准备
正式开始敲代码之前,我们得先把几个关键概念捋清楚,不然参数设置的时候肯定会一头雾水。首先是最基本的服务器(Server)和客户端(Client)。这个和日常上网一样,提供服务的叫服务器,访问服务的叫客户端。在PLC通信里,通常我们把那个等待连接、被动接收请求的PLC称为服务器,而主动发起连接请求的PLC称为客户端。一个服务器可以同时接受多个客户端的连接。
然后是协议。Socket通信主要支持TCP和UDP。简单打个比方,TCP就像打电话,连接建立后(电话接通),双方能可靠、有序地对话,确保你说的每一句话对方都能按顺序听到,适合对数据准确性要求高的场合,比如发送控制命令、重要状态。UDP则像发短信或广播,发出去就不管了,不保证对方一定能收到,也不保证顺序,但速度快、开销小,适合实时性要求高、允许少量数据丢失的场景,比如周期性的传感器数据广播。对于PLC间稳定可靠的数据交换,我们通常首选TCP。
接下来是IP地址和端口号。每台FX5U的以太网口都需要一个唯一的IP地址,比如默认的192.168.3.250,这相当于设备的“街道门牌号”。端口号则像是这个门牌号下的“房间号”,用于区分同一台设备上的不同通信服务。端口号范围是0-65535,其中0-1023一般被系统预留,我们自定义通信通常从1024以上选,比如用5000、8080等。
硬件方面,你需要准备:
- 两台或以上支持以太网通信的三菱FX5U PLC。注意,必须是带内置以太网端口的型号。
- 一台安装了GX Works3编程软件的电脑。这是三菱新一代PLC的标准编程软件,界面和之前的GX Works2有所不同,更现代化。
- 一个标准的网络交换机(Switch)和几根网线。将两台PLC和你的电脑都连接到同一个交换机上,确保它们处于同一个局域网网段(例如,都是
192.168.3.xxx)。
这里有个我踩过的坑要提醒你:务必检查PLC的IP地址是否冲突。如果多台设备IP地址一样,网络就乱套了。你可以在GX Works3的“在线”菜单里,通过“当前连接目标”搜索功能,查看网络上所有FX5U的IP,确保每台都独一无二。
3. 第一步:在GX Works3中配置通信参数
参数配置是通信的基础,这一步没做对,后面的程序全白写。我们分服务器和客户端两步来设置。
3.1 配置服务器端参数
首先,在GX Works3中新建一个工程,选择正确的FX5U CPU型号。然后按照以下路径打开参数设置界面: 导航窗口 -> 参数 -> 模块参数 -> 以太网端口 -> 基本设置 -> 对象设备连接配置设置。
- 打开“以太网配置(内置以太网端口)”:点击这个按钮,会弹出一个配置窗口。
- 设置IP地址:在“基本设置”页,给这台作为服务器的P


8864

被折叠的 条评论
为什么被折叠?



