news 2026/9/29 9:55:44

欧姆龙PLC通讯怎么配?Fins/TCP、Host Link串口与通讯不上排查全解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
欧姆龙PLC通讯怎么配?Fins/TCP、Host Link串口与通讯不上排查全解

摘要:本文系统讲解欧姆龙PLC的通讯配置与故障排查,覆盖CP1E/CP1H、CJ2M、NJ/NX等常用机型。内容从物理接口与协议对应关系入手,重点介绍以太网FINS/TCP读写DM区的完整实例(含帧结构、命令码与地址核对)、串口Host Link的配置与C模式命令,并给出通讯不上时的分层排查方法与交叉验证手段。文中端口号、命令码、内存区代码等关键数值均依据欧姆龙官方手册核对。

做设备维护和程序调试时,欧姆龙PLC通讯几乎是绕不开的一关:电脑连不上PLC、触摸屏读不到DM区数据、上位机软件频繁超时,很多故障最后都出在通讯这一环。面对CP1E、CP1H、CJ2M这些老型号和NJ、NX这些新型号,再加上FINS/TCP、Host Link、NT Link、Modbus一串名词,新手往往分不清哪种接口该用什么协议、参数在哪里设。其实只要先理清物理接口与协议的对应关系,再按统一的步骤配置网络号、节点号、单元号,通讯问题大多能快速定位。

这篇围绕“欧姆龙PLC通讯”,结合CP1E/CP1H、CJ2M、NJ/NX几类常用机型,编程软件分别对应CX-Programmer和Sysmac Studio,把以太网FINS/TCP、串口Host Link的配置和读写过程系统讲一遍,并给出通讯不上的分层排查方法。文中端口号、命令码、内存区代码等关键数值,均依据欧姆龙官方操作手册与官方FAQ核对。

一、欧姆龙PLC常见通讯方式与接口

1.1 各系列机型的通讯接口

不同机型的接口差别很大,配置前先认清手上的PLC有哪些口。小型机CP1E/CP1H/CP1L本体带一个USB外设口和最多两个串口选件槽,可插CP1W-CIF01(RS-232C)、CP1W-CIF11/CIF12(RS-422A/485)或CP1W-CIF41以太网选件板;CP2E部分型号直接集成以太网口。CJ2M模块化机型在CPU上自带USB口,部分CPU(如CPU3□)内置EtherNet/IP口,也可插CJ1W-ETN21以太网单元和SCU串口通讯单元。NJ/NX系列则以以太网口为主,支持EtherNet/IP,并用Sysmac Studio配置。先确认物理接口,再谈协议,是配置通讯的第一步。

1.2 FINS、Host Link、NT Link分别是什么

FINS是欧姆龙自家的工厂接口网络服务协议,可以理解为一套统一的命令格式,上位机或PLC用它读写对方内存区、改变运行模式。FINS既能跑在以太网上(FINS/TCP或FINS/UDP),也能跑在串口上(串口FINS)。Host Link是较早的上位机链接协议,分C模式命令和FINS命令两类,主要跑在RS-232C/485串口上,适合一对一或一对多的轮询通讯。NT Link是PLC与欧姆龙触摸屏之间的专用高速链接,分1:1和1:N,普通NT Link波特率常见为38400,高速NT Link为115200。Modbus则在部分机型上以简易主站或串口网关方式支持,用来对接第三方仪表和变频器。

通讯方式物理接口协议/默认参数典型用途
以太网FINS/TCPRJ45以太网口FINS over TCP,默认端口9600上位机、跨网段、需可靠连接的读写
以太网FINS/UDPRJ45以太网口FINS over UDP,默认端口9600PLC之间、局域网点对点数据交换
EtherNet/IPRJ45以太网口CIP,标签数据链接NJ/NX与控制器、远程IO通讯
Host LinkRS-232C/485串口C模式或FINS,标准9600、7,2,E上位机、触摸屏经串口读写PLC
NT LinkRS-232C/422A串口1:1/1:N,38400或115200欧姆龙触摸屏与PLC专用链接
Modbus-RTURS-485串口主站/从站,8位数据对接第三方仪表、变频器

二、FINS/TCP以太网通讯基础

2.1 网络号、节点号、单元号的含义

FINS不用IP地址直接寻址,而是用“网络号.节点号.单元号”三元组定位设备:网络号区分不同网段,本机网络通常为0;节点号区分同一网络里的不同设备,取值范围1到254(十六进制01到FE);单元号区分同一节点上的不同单元,直接访问CPU时单元号固定为0,与以太网模块自身的单元号无关。在以太网FINS中,以太网单元负责在IP地址与FINS节点号之间转换,转换方式有自动转换、IP地址表和复合地址表三种。最常用的自动转换规则很简单:FINS节点号就等于IP地址的最后一段,例如IP为192.168.250.3,节点号就是3;计算机IP为192.168.250.10,节点号就是10。

2.2 FINS/TCP与FINS/UDP的区别,端口9600

FINS/UDP是无连接的,发送方不建立连接直接发数据报,实时性好、开销小,但不保证送达,适合局域网内点对点;FINS/TCP在通讯前要先建立TCP连接并握手,数据可靠、可跨路由器,适合上位机和数据要求严格的场合。两者默认端口都是9600,可在模块设置中修改,但同一网络内所有设备端口必须一致,否则通讯不上。调试时建议先用网线直连电脑与PLC或经同一交换机连接,在电脑命令行用ping确认网络通畅,再进行FINS配置。

三、FINS/TCP读写DM区完整实例

3.1 实例参数与FINS帧结构

给一个可完整核对的例子。计算机IP设为192.168.250.10,FINS源节点号为10(十六进制0A);PLC的IP设为192.168.250.3,FINS目标节点号为3(十六进制03),双方子网掩码255.255.255.0,端口都用默认9600。在未建立路由表的情况下网络号都为0,直接对CPU操作单元号为0。FINS帧头部依次为ICF、RSV、GCT、DNA、DA1、DA2、SNA、SA1、SA2、SID共10个字节:发送命令时ICF固定为80、RSV为00、GCT为02;目标地址DNA=00、DA1=03、DA2=00;源地址SNA=00、SA1=0A、SA2=00;SID服务标识可填00,响应中原样返回。

FINS命令码由主码和从码组成:内存区读为0101、内存区写为0102;命令后的内存区代码区分操作哪个区,DM区字为82、CIO区字为B0、W区字为B1、W区位为31;随后是3字节起始地址(通道号两字节加位号一字节)和2字节数量。PLC正常完成时返回结束码0000,出错时为其他代码。

FINS/TCP 握手连接请求(计算机先发给PLC): 46494E53 0000000C 00000000 00000000 0000000A └ 46494E53=ASCII字符FINS └长度12字节 └命令0 └错误0 └客户端节点10 PLC返回命令码00000001的帧,连接建立后才能发数据帧。 读取DM区 D100 开始的1个字(命令码0101,DM代码82): 46494E53 0000001A 00000002 00000000 800002 000300 000A00 00 0101 82 006400 0001 说明:D100=十六进制0064;0001表示读1个字;0000001A=数据长度26字节。 若D100中为十六进制1234(十进制4660),PLC正常返回的数据段为: C00002 000A00 000300 00 0101 0000 1234 (ICF变为C0,0000为正常结束码,1234为读到的数据) 写入DM区 D100 一个字为十六进制1234(命令码0102): 46494E53 0000001C 00000002 00000000 800002 000300 000A00 00 0102 82 006400 0001 1234 说明:0000001C=数据长度28字节;正常返回结束码0000。 实际发送时十六进制字符串中不加空格;异常结束码可查FINS手册响应代码表。

3.2 地址数值的核对

把关键数值核对一遍:十进制100换算为十六进制是0064,所以D100在帧中写作82 006400;十进制10为0A、3为03,分别填入源节点SA1和目标节点DA1;写命令比读命令多2字节数据,所以长度从26(0x1A)变为28(0x1C)。再换一个例子,写W区的W0.05位为ON,命令码0102后用W区位代码31,地址写作000005,数量0001,数据01表示置位。访问其他网段时要在路由表中配置目标网络号。

四、Host Link串口通讯配置

4.1 单元号、波特率与帧格式

使用Host Link时,在CX-Programmer中双击“设置”,打开“串口1”或“串口2”选项卡(按选件板实际插入位置选择),把模式设为Host Link,单元号设为0,通信设置可选标准或定制。标准帧为9600bps、7位数据、2位停止位、偶校验,写作9600、7,2,E;定制时波特率可设为19200、38400、115200等,但PLC侧与上位机、触摸屏侧必须完全一致。修改后要下载到PLC并断电再上电才生效。CP1H/CP1L的DIP开关第4脚对应串口1、第5脚对应串口2:使用PLC设置中的Host Link参数时该脚应置OFF(按设置区参数运行);若想用标准默认参数可按手册置ON。实际多串口接触摸屏的场合,六脚全部置OFF、由软件设置参数是更常见的做法,具体以型号手册为准。

4.2 C模式Host Link命令与接线

C模式Host Link采用ASCII字符帧,格式为:起始符@、单元号两位、命令码两位、正文、FCS校验两位、结束符*加回车。例如用RD命令读取0号单元DM区从D256开始的1个字,正文为“@00RD01000001”,对“@”到正文末尾逐个字符做异或得到FCS=56,完整帧为“@00RD0100000156*”再加回车。RD命令的正文依次是起始通道号四位和通道数四位,D256的十六进制为0100。RS-232C接线时注意交叉:通讯对方的发送接PLC的接收、接收接发送,信号地直连;不使用硬件握手时,可在DB9的RS与CS脚之间短接。RS-485组网时A/B极性要对应,末端设备接入终端电阻,总线按手拉手方式布线。

  • 串口两侧波特率、数据位、停止位、校验必须逐项一致,标准为9600、7,2,E
  • Host Link单元号要与上位机或触摸屏驱动里填写的站号一致,默认0
  • RS-232C收发交叉接线、信号地直连;RS-485注意A/B极性和终端电阻
  • 改完串口设置要下载并重新上电,DIP开关位置与设置来源要对应
  • 串口不能被其他软件同时占用,否则会提示无法连接

五、通讯不上怎么排查

5.1 按物理层、参数、防火墙、路由分层查

通讯不上最忌讳一上来就怀疑程序。建议按“物理连接→通讯参数→电脑防火墙与网卡→网络路由”逐层判断:先看网线、串口线和指示灯,再核对IP、端口、节点号和串口参数,然后检查防火墙是否拦截、电脑是否有多个网卡选错网段,最后再查跨网段路由和FINS节点转换方式。

故障现象可能原因处理方向
ping不通PLC网线故障、IP不在同一网段、子网掩码不一致查线缆与指示灯,核对IP和掩码
ping通但FINS连不上端口不是9600、节点号与IP末段不一致统一端口,核对节点号与转换方式
TCP握手无响应防火墙拦截9600、PLC非Server模式关闭或放行防火墙,确认PLC被动响应
串口完全无数据收发接反、波特率不一致、串口被占用交叉接线,核对参数,关闭占用软件
串口返回乱码波特率/校验不一致、波特率过高受干扰统一帧格式,降波特率并做好屏蔽
返回异常结束码内存区代码或地址错误、跨网未配路由核对区代码与地址,查响应代码表

5.2 常用交叉验证手段

用电脑ping PLC可以先把网络层问题和应用层问题分开:ping通则说明物理连接和IP配置正常,应重点查端口、FINS节点和防火墙;ping不通则先回到网线和IP地址。串口可用短接自发自收或USB转串口回环测试,区分线缆问题还是PLC问题。有条件时换一根确认完好的通讯线、换一个USB转串口模块对比,往往能快速锁定故障点。

六、常见问题FAQ

6.1 高频疑问解答

Q:FINS节点号是不是随便设,必须和IP最后一段一样吗?

A:采用自动转换方式时,节点号应等于IP地址最后一段,例如IP末段是3节点号就设3,范围1到254。如果使用IP地址表或复合地址表方式,可以手动指定对应关系,但要保证网络内节点号不重复。多数现场用自动转换最省心,保持二者一致即可。

Q:FINS/TCP和FINS/UDP该选哪个?

A:需要可靠送达、可能跨路由器或上位机长期采集数据时选FINS/TCP,它先握手建连再通讯;局域网内PLC之间短数据、追求实时性时可用FINS/UDP。两者默认端口都是9600,选型后上位机驱动和PLC侧要对应。

Q:Host Link标准帧格式是什么,单元号在哪里改?

A:标准Host Link为9600bps、7位数据、2位停止位、偶校验,即9600、7,2,E。在CX-Programmer的PLC设置对应串口选项卡里设模式、单元号和帧格式,单元号默认0,改完下载并重新上电。DIP开关第4、5脚与串口设置来源有关,细节以型号手册为准。

Q:电脑能ping通PLC,但软件就是读写不了数据怎么办?

A:ping通只代表网络层正常。依次检查:通讯端口是否为9600且被防火墙放行;FINS目标节点是否与PLC的IP末段一致;访问CPU时单元号是否填0;命令中的内存区代码(如DM为82)和地址是否正确。若PLC返回了非0000的结束码,按FINS手册响应代码表查具体原因。

总结:欧姆龙PLC通讯的关键,是先把物理接口和协议对应起来——以太网走FINS/TCP或FINS/UDP、串口走Host Link、触摸屏可走NT Link。配置时牢记默认端口9600、FINS用网络号.节点号.单元号寻址、自动转换下节点号等于IP末段、访问CPU单元号为0;内存区读命令码0101、写0102、DM区代码82、正常结束码0000,并按帧长度逐字节核对。串口Host Link标准参数为9600、7,2,E,注意收发交叉接线和DIP开关位置。通讯不上时按物理连接、通讯参数、防火墙网卡、路由分层排查,配合ping、串口回环和换线交叉验证,绝大多数通讯故障都能快速定位。具体型号与固件的细节,以对应官方手册为准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 9:52:58

WorkBuddy与腾讯乐享组合:Agent知识库实战指南

知识库这东西,很多人第一反应就是"搭个RAG,把文档塞进去,然后问答"。我一开始也是这么想的,直到我把WorkBuddy和腾讯乐享接在一起用了一段时间,才发现原来知识库还能这么玩——它不只是"查资料的地方&q…

作者头像 李华
网站建设 2026/9/29 9:52:58

2026最新实测:10款降ai率工具红黑榜(含真实踩坑点测评)

看着满眼红色的AIGC检测报告,很多人肯定搜过免费降低ai率的偏方。前阵子为了给复杂长篇报告降低ai率,我踩了不少坑。 市面上许多免费降ai率工具,改完不是语意生硬就是格式全乱,试错很耗精力。为此我整理了10款降ai率工具的真实测评…

作者头像 李华
网站建设 2026/9/29 9:52:58

MoveIt 机械臂运动规划、抓取与偏差补偿实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 9:52:37

AI工程从零开始:手写神经网络到部署监控全链路指南

"ai-engineering from scratch"这个项目名我在社区里刷到过好几次了,每次点进去都有人问"从零开始到底怎么个零法"。今天就把我对这类项目的理解、自己动手踩过的坑、以及一套可以照着做的完整路线整理出来。如果你是那种不想只会调库、想搞懂A…

作者头像 李华
网站建设 2026/9/29 9:49:28

Spring AI实战:RAG与Tool Calling构建岗位JD分析系统

1. 为什么我要用 Spring AI 做岗位分析系统招聘网站上的岗位描述(JD)看多了会发现一个很现实的问题:同样是“Java 后端开发”,不同公司写出来的技术栈、职责范围、薪资区间能差出三倍。手动一条条对比效率极低,用关键词…

作者头像 李华