PLC编程 共 203 篇文章

梯形图定时器TON复位信号未断开导致计时不准确的逻辑修复
2026-03-17 03:57:31
梯形图中TON定时器的复位信号若在计时过程中未彻底断开,会导致定时器状态异常:已达到设定值却不触发输出,或反复置位/复位造成抖动,甚至完全停止计时。这种问题不依赖硬件故障,纯属逻辑设计疏漏,但极易被忽略——因为PLC扫描周期短、响应快,表面看程序“能运行”,实则定时精度崩塌,可能引发设备误动作、工艺
PLC编程 梯形图 定时器
67 0
ST语言数组下标越界访问引发的运行时错误边界检查
2026-03-17 03:38:46
ST语言(Structured Text)是IEC 611313标准定义的五大PLC编程语言之一,广泛用于工业自动化控制系统中。其语法接近Pascal和C,支持结构化逻辑、函数调用、数组操作和复杂数据类型。但正因为其“类高级语言”的灵活性,开发者容易忽略底层运行时约束——尤其是数组下标越界访问这一类
ST语言 数组越界 边界检查
62 0
梯形图常闭触点物理接线与程序逻辑不一致导致的启停故障
2026-03-17 02:57:54
梯形图中常闭触点的物理接线与程序逻辑不一致,是电气自动化现场最隐蔽、复现率最高、排查耗时最长的一类启停故障。它不触发PLC报错,不烧保险,不跳断路器,却能让电机“按了启动没反应”“按了停止还转着”,或出现“启动后立刻停”“停止后延时几秒才停”等反直觉现象。根本原因不是PLC坏了,也不是程序写错了,而
梯形图 常闭触点 物理接线
66 0
ST语言中临时变量(TEMP)在上升沿指令中失效的存储区修正
2026-03-17 02:25:00
在ST(Structured Text)语言中编写PLC逻辑时,使用RTRIG(上升沿触发器)指令配合临时变量(VARTEMP)是常见做法。但许多工程师会遇到一个隐蔽却致命的问题:上升沿检测始终不触发,或仅在首次扫描生效、后续扫描完全失效。根本原因不是指令写错,而是ST语言中VARTEMP变量的生命
ST语言 PLC编程 R_TRIG
67 0
梯形图双线圈输出导致逻辑冲突的互锁修改方案
2026-03-17 02:03:04
梯形图编程中,双线圈输出(即同一输出地址在程序不同位置被多次驱动)是PLC初学者最易犯、却极易引发隐性故障的典型错误。它不一定会立即导致PLC报错或停机,但会在特定时序下造成输出状态反复翻转、逻辑“打架”,最终表现为设备误动作、接触器抖动、电机启停异常,甚至引发安全风险。本文聚焦真实工程场景,提供一
双线圈 互锁 梯形图
73 0
NJ系列PLC变量表中STRUCT结构体成员对齐方式不一致的编译错误修复
2026-03-16 17:30:09
NJ系列PLC变量表中STRUCT结构体成员对齐方式不一致的编译错误,是欧姆龙NJ/NX系列控制器在工程化部署阶段高频出现的致命型报错。该错误不触发语法高亮提示,不显示行号定位,仅在编译时抛出类似 Error C2017: Structure member alignment mismatch in
PLC编程 结构体 内存对齐
71 0
西门子TIA Portal SCL代码编译报“数组越界”的边界条件检查
2026-03-16 13:07:24
西门子TIA Portal 中使用 SCL(Structured Control Language)编写逻辑时,编译报错 Array index out of bounds(数组越界)是高频且易被误判的典型问题。该错误并非运行时异常,而是在编译阶段由 TIA Portal 的静态类型检查器主动捕获的
SCL编程 数组越界 编译报错
51 0
贝加莱X20 PLC编译报“看门狗时间小于任务周期”的参数增大操作
2026-03-16 09:55:41
当你在贝加莱(B&R)Automation Studio 中编译 X20 系列 PLC 项目时,遇到错误提示: Watchdog time is smaller than task cycle time 这表示:当前任务(Task)所配置的看门狗超时时间(Watchdog Time)小于该任务的实际
PLC编程 贝加莱 X20
65 0
台达ISPSoft软件编译报“双线圈输出”错误的逻辑互锁修改
2026-03-16 07:43:31
台达ISPSoft软件在编译PLC程序时,若检测到同一输出地址(如 Y0、M100)在多个逻辑支路中被独立置位(即未加互锁),会报出“双线圈输出”错误(Error Code: 204)。该错误并非语法错误,而是ISPSoft基于IEC 611313标准实施的强制性逻辑安全检查——目的是防止因输出冲突
PLC编程 台达软件 双线圈错误
78 0
汇川InoShop软件在线监控伺服参数报“通信超时”的COM口独占释放
2026-03-16 07:23:51
当汇川InoShop软件连接伺服驱动器(如IS620N、IS620P系列)进行在线监控时,突然弹出“通信超时”提示,且反复重试无效——这不是通信线缆松动或波特率错配的常见问题,而是COM口被系统级独占锁定后的典型症状。该现象多发于Windows 10/11系统,尤其在安装过串口调试助手、PLC编程软
COM口独占 伺服监控 InoShop
64 0
三菱iQ-R系列CC-Link IE TSN带宽不足时的QoS优先级设置
2026-03-16 06:16:31
当三菱iQR系列PLC通过CCLink IE TSN网络与伺服、IO模块、HMI等设备通信时,若出现周期性通信延迟、伺服响应抖动、远程IO刷新滞后或诊断提示“TSN Bandwidth Exceeded”(带宽超限),说明当前TSN网络已无法满足所有流量的确定性传输需求。此时,不能通过简单扩容交换机
TSN网络 PLC编程 伺服控制
48 0
台达DVP-SS2特殊寄存器D1120通讯超时标志位的复位程序编写
2026-03-16 00:54:05
台达DVPSS2系列PLC的特殊寄存器D1120是用于监控串口通讯(RS485)状态的关键诊断寄存器。当PLC通过MODBUS RTU主站模式与外部设备(如变频器、温控表、电表等)通信时,若从站无响应、线路干扰严重或地址/波特率配置错误,D1120的第0位(bit 0) 将自动置为1,表示“通讯超时
PLC编程 台达PLC 通讯超时
86 0
信捷XD系列PLC Modbus RTU指令MODRW连续执行导致的总线拥堵互锁逻辑
2026-03-16 00:08:38
信捷XD系列PLC在工业现场大量用于小型自动化系统,其内置Modbus RTU主站功能常被用来读写变频器、温控表、智能电表等从站设备。但实际工程中,频繁使用MODRW指令进行连续轮询,极易引发总线拥堵、从站响应超时、数据错乱甚至主从通信死锁——这不是硬件故障,而是未识别Modbus RTU物理层与协
PLC编程 ModbusRTU 信捷PLC
92 0
三菱GX Works3软件标签全局数据库与局部数据库变量名冲突的重命名
2026-03-15 17:25:49
在三菱GX Works3中,当项目同时使用标签全局数据库(Global Tag Database) 和局部数据库(Local Device Memory / Local DB) 时,若变量名重复(例如全局库中定义了 MotorSpeed,而某PLC程序块内又用 D100 映射为同名软元件标签 Mot
GXWorks3 标签冲突 重命名指南
68 0
罗克韦尔Studio 5000软件添加EIP设备报“连接大小不匹配”的RPI与数据包大小调整
2026-03-15 13:19:52
在罗克韦尔自动化系统中,使用 Studio 5000 Logix Designer 配置 EtherNet/IP(EIP)设备时,常遇到报错: “Connection size mismatch”(连接大小不匹配) 该错误并非通信中断,而是控制器在建立隐式(I/O)连接时,发现 请求的输入/输出数据
Studio5000 EtherNetIP RPI
75 0
ST怎么写浮点数比较:IF ABS(A - B) < 0.001 THEN ... (避免直接=)
2026-03-15 11:55:25
在电气自动化领域,PLC(可编程逻辑控制器)程序中处理浮点数比较是一个高频但极易出错的操作。尤其在使用结构化文本(Structured Text,ST)语言编程时,新手常直接写 IF A = B THEN ... 来判断两个实数是否相等。这种写法在绝大多数工业现场会导致逻辑失效——不是偶尔跳过动作,
浮点比较 PLC编程 ST语言
55 0
ST怎么写除法保护:IF Divisor <> 0.0 THEN Result := Numerator / Divisor; END_IF;
2026-03-15 11:16:56
在结构化文本(ST)编程中,除法运算看似简单,但若不加保护,极易引发运行时错误——最典型的是除零异常。该异常在PLC(可编程逻辑控制器)中不会抛出传统软件的“报错对话框”,而是导致:数值结果为 NaN(非数字)、±INF(正/负无穷),或更严重地触发硬件级看门狗超时、CPU停机、程序跳转至故障组织块
除法保护 PLC编程 结构化文本
56 0
ST怎么写指针取值:Value := DEREF(pPointer);
2026-03-15 11:00:31
在结构化文本(ST)编程中,DEREF 函数是访问指针所指向内存地址内容的核心操作。它不是语法糖,而是 IEC 611313 标准明确定义的唯一标准方式,用于安全、明确地执行“指针解引用”。许多初学者误以为 pPointer^ 或 pPointer0 可用,或直接写 Value := pPointe
ST编程 指针操作 DEREF函数
64 0
ST怎么写结构体成员访问:MotorData.Speed := 1500;
2026-03-15 10:17:03
在结构化文本(Structured Text,ST)编程中,访问结构体成员是自动化控制逻辑中最基础、最频繁的操作之一。以 MotorData.Speed := 1500; 这一语句为例,它看似简单,却隐含了数据类型定义、内存布局、作用域规则、编译器解析机制和运行时赋值行为等多重技术细节。下面分步拆解
ST编程 结构体 成员访问
55 0
ST怎么写枚举变量赋值:State := StateType.Run; (提高可读性)
2026-03-15 09:18:26
在结构化文本(Structured Text,ST)编程中,枚举变量(Enumerated Type)是提升代码可读性、可维护性和安全性的核心手段。尤其在电气自动化项目(如基于IEC 611313标准的PLC程序)中,状态机(State Machine)几乎无处不在——设备启停、工艺步进、故障处理、
枚举类型 结构化文本 PLC编程
110 0