4. 硬件接线与组态:远程IO模块的电源、总线、IO接线,以及TIA Portal中的硬件组态

好,咱们进入第四讲。这一章是实打实的动手环节。

很多学员觉得编程难,其实在我看来,硬件接线和组态才是最容易出幺蛾子的地方。你程序写得再漂亮,现场线没接对,设备就是不动。我见过太多工程师抱着电脑查半天程序,最后发现是24V电源没送过来——这种低级错误,咱们今天争取一次讲透。

4.1 远程IO模块的电源接线

远程IO模块要工作,首先得有电。这听起来是废话,但怎么接、接多少伏、要不要隔离,这里头门道不少。

电源类型:绝大多数远程IO模块,比如西门子的ET200SP、ET200MP,或者第三方像WAGO、Beckhoff的模块,都支持DC 24V供电。也有少数用AC 220V的,但工业现场主流就是24V直流。

接线方式

  • 总线耦合器供电:电源先接到总线耦合器(Bus Coupler)上,再由耦合器通过背板总线给后面的IO模块供电。这种最常用。
  • 单独供电:如果IO模块数量多、电流大,或者有模拟量模块、高精度模块,我建议单独拉一路24V给后面的模块。我在一个项目里遇到过,数字量模块和模拟量模块共用一路电源,结果模拟量采集值总是跳变,后来分开供电就稳了。
  • 冗余供电:对于关键设备,比如安全系统,可以用双路电源。一路坏了另一路顶上。
⚠️ 注意: 电源极性千万别接反!虽然很多模块有防反接保护,但万一没有,模块就烧了。我习惯在接线前先用万用表量一下,确认正负极。

电源容量计算

别小看这个。每个模块都有功耗参数,比如一个16点数字量输入模块,典型功耗可能0.5W。你挂10个模块,就是5W。再加上总线耦合器本身的功耗,还有给传感器供电的电流。我一般会留20%-30%的余量。

模块类型 典型功耗 备注
总线耦合器(ET200SP) 约1.5W 含总线通信功耗
16DI 数字量输入 约0.5W 不含传感器供电
16DO 数字量输出 约1.0W 不含负载电流
4AI 模拟量输入 约1.2W 含内部转换电路

4.2 总线接线:把模块串起来

远程IO模块之间怎么通信?靠总线。常见的有PROFINET、PROFIBUS、EtherCAT、Modbus TCP等。咱们以最主流的PROFINET为例。

PROFINET接线

  • 用标准网线(Cat5e或Cat6),RJ45接头。
  • 从PLC的PN口出来,接到第一个远程IO站的总线耦合器。
  • 然后从第一个耦合器的下一个PN口,再接到第二个站,以此类推。这叫“菊花链”拓扑。
  • 也可以加交换机,做星型拓扑。我个人习惯用星型,排查故障方便。
💡 小技巧: 网线长度别超过100米。如果距离远,中间加交换机或者用光纤。我有个项目,车间跨度200米,就是用光纤转接的。

终端电阻

如果你用的是PROFIBUS(RS485),那必须在总线两端加终端电阻。PROFINET不需要,因为它用的是以太网物理层,自动阻抗匹配。嗯,这里要注意,别把PROFIBUS的习惯带到PROFINET上来。

4.3 IO接线:传感器和执行器

这部分最琐碎,也最容易出错。咱们分输入和输出来说。

数字量输入(DI)接线

  • 源型(Sourcing):传感器提供24V正信号,模块检测到高电平就为“1”。这是最常见的接法。
  • 漏型(Sinking):传感器提供0V负信号,模块检测到低电平为“1”。日系PLC常用,西门子也能配。
  • 接线示例:传感器正极接模块的DI点,负极接模块的COM端(公共端)。

数字量输出(DO)接线

  • 继电器输出:可以接交直流负载,但响应慢。我一般用在控制接触器、指示灯上。
  • 晶体管输出:只能接直流负载,响应快。适合控制伺服、步进驱动器的使能信号。
  • 接线示例:模块DO点接负载正极,负载负极接0V。注意负载电流不能超过模块额定值,一般0.5A/点。
🔧 避坑指南: 我曾经在一个项目里,把24V传感器直接接到了220V的继电器输出点上,结果传感器瞬间冒烟。后来我养成了一个习惯:接线前先看模块标签,确认是DI还是DO,电压等级是多少。

模拟量输入(AI)接线

  • 电流信号(4-20mA):两线制传感器,正极接模块的AI+,负极接AI-。模块内部有250Ω电阻取样。
  • 电压信号(0-10V):三线制传感器,正极接AI+,负极接AI-,还有一根公共端接COM。
  • 注意屏蔽:模拟量信号容易受干扰,一定要用屏蔽双绞线,屏蔽层单端接地。我见过一个现场,模拟量波动大,查了半天发现屏蔽层没接地,接上就好了。

4.4 TIA Portal中的硬件组态

线接好了,接下来要在软件里告诉PLC:你下面挂了哪些模块。这就是硬件组态。

步骤一:添加远程IO站

  1. 打开TIA Portal,在项目树里双击“添加新设备”。
  2. 选择“分布式I/O” -> “ET200SP”或你实际用的型号。
  3. 给这个站起个名字,比如“Remote_Station_1”。

步骤二:配置总线接口

  1. 在设备视图里,选中总线耦合器。
  2. 在属性里设置PROFINET设备名称(Device Name),这个必须和硬件上拨码开关或软件分配的一致。
  3. 设置IP地址。我习惯用固定IP,比如192.168.0.2,方便管理。
⚠️ 注意: 设备名称不能有空格和特殊字符。我见过有人写“Station 1”,结果通信不上,改成“Station_1”就好了。

步骤三:添加IO模块

  1. 从硬件目录里,把对应的模块拖到站点的槽位上。
  2. 顺序必须和实际接线一致。比如第一个槽是DI模块,第二个槽是DO模块,不能乱。
  3. 每个模块会自动分配IO地址。比如DI模块的输入地址是I0.0-I1.7,DO模块的输出地址是Q0.0-Q1.7。

步骤四:编译与下载

  1. 组态完成后,点击“编译”按钮,检查有没有错误。
  2. 然后选中PLC,点击“下载”到设备。
  3. 下载时选择“PG/PC接口”,选你电脑连PLC的网卡。
💡 小技巧: 下载前最好先“在线”一下,看看PLC和远程站能不能ping通。我习惯在CMD里敲“ping 192.168.0.2”,通了再下载,省得浪费时间。

代码示例:在程序中访问远程IO

组态完成后,远程IO的地址和本地IO一样用。比如:

// 读取远程DI模块的第一个点
IF "Remote_Station_1".I0.0 THEN
    // 启动电机
    "Motor_Start" := TRUE;
END_IF;

// 控制远程DO模块的第一个点
"Remote_Station_1".Q0.0 := "Conveyor_Run";

你看,编程上没有任何区别。这就是TIA Portal的方便之处——硬件组态帮你把底层通信封装好了。

4.5 常见问题与排查

最后,我总结几个我经常遇到的坑:

  • 通信不上:先检查网线,再检查设备名称和IP地址。我有个项目,折腾了两小时,最后发现是网线头没压好。
  • IO点不亮:用万用表量模块的电源灯亮不亮。如果不亮,查24V电源。如果亮,查传感器或执行器本身。
  • 模拟量不准:先看接线,屏蔽层接地了吗?再看量程,模块组态的是4-20mA还是0-10V?我遇到过组态成电压,实际接电流,结果数值乱跳。

好了,这一章的内容就这些。硬件接线和组态,说白了就是细心加耐心。你按步骤来,一步步检查,基本不会出大问题。下一章咱们开始写真正的控制程序,到时候这些硬件配置就派上用场了。