跳到正文
Learn-SCL

SCL 指令手册

查一条 SCL 指令怎么写:调用语法、参数表、完整示例、逐扫描行为、常见坑。每个已发布页面都用一个完整 FC/FB 演示,构建时做语法/结构校验;能跑场景的页面在 PLC 云仿真 里给出 PASS 回归。

当前 17 条有独立详解,67 条已进入索引;标“待补充”的条目按搜索需求和验证进度分批上线。

怎么用

  1. 先在下面的全量索引里按分类找到指令,或直接搜索助记符(TON、CTU、R_TRIG……)。
  2. 先看“一句话”和“SCL 写法”,知道调用形式和实例要求;再看参数表和完整示例。
  3. 最后看“常见坑”和“和 LAD 的区别”,把代码接到自己的 OB/FB 里;需要动博途时,用 TiaLink 把示例导入测试项目。

本手册是学习参考,不替代 TIA 帮助和现场工艺评审;安全相关结论必须人工确认。

控制流 2

定时器 4

计数器 3

边沿 2

转换 2

移动 3

字符串 1

SCL 指令索引 67

按 TIA 指令分类排列;“待补充”条目先保留索引,不生成空页。参数和完整示例以已发布的详解页为准。当前已发布 17 条。

67 条
指令名称分类一句话详解
IFIF — 条件判断控制流用 IF / ELSIF / ELSE / END_IF 按条件执行代码;SCL 里最常用的分支结构。详解 →
CASECASE — 多路分支控制流按一个整数或枚举值跳到多个分支;比一长串 ELSIF 清晰,适合状态机。详解 →
FORFOR — 计数循环控制流按计数循环执行一段代码;支持步长和递减循环。待补充
WHILEWHILE — 条件循环控制流条件为真时循环;条件在循环前判断,可能一次都不执行。待补充
REPEATREPEAT — 直到循环控制流先执行一次,再判断条件;至少执行一次。待补充
RETURNRETURN — 提前返回控制流提前退出当前 FC/FB;FC 可返回一个值。待补充
CONTINUECONTINUE — 跳过本次循环控制流跳过本次循环剩余语句,直接进入下一次循环。待补充
EXITEXIT — 退出循环控制流立即退出当前循环,继续执行循环后面的代码。待补充
REGIONREGION — 代码分段控制流用 REGION/END_REGION 给代码分段,便于折叠和导航。待补充
TONTON — 接通延时定时器定时器多重实例用 #Timer(IN := ..., PT := ...) 调用;IN 保持到 PT 后 Q=1,IN 断开 Q/ET 立即复位。详解 →
TOFTOF — 断开延时定时器定时器IN 断开后 Q 继续保持 PT,计时到 0 才复位;用于风机后吹、泵后停。详解 →
TPTP — 脉冲定时器定时器IN 上升沿产生一个固定宽度 PT 的脉冲;脉冲期间 IN 断开也不影响 Q。详解 →
TONRTONR — 保持型接通延时定时器累计 IN 为 1 的时间,IN 断开不清零;R=1 才复位,适合累计运行时间。详解 →
CTUCTU — 加计数器计数器CU 每个上升沿 CV 加 1,CV≥PV 时 Q=1;R=1 清零。详解 →
CTDCTD — 减计数器计数器CD 每个上升沿 CV 减 1,CV≤0 时 Q=1;LD=1 装载 PV。详解 →
CTUDCTUD — 双向计数器计数器CU/CD 分别加/减,QU/QD 两路输出;R 复位、LD 装载 PV。详解 →
R_TRIGR_TRIG — 上升沿检测边沿检测 0→1 的上升沿,Q 只在一个扫描周期为 1;需要实例。详解 →
F_TRIGF_TRIG — 下降沿检测边沿检测 1→0 的下降沿,Q 只在一个扫描周期为 1;需要实例。详解 →
EQEQ — 等于比较比较等于比较;SCL 里通常直接用 =。待补充
NENE — 不等于比较比较不等于比较;SCL 里通常直接用 <>。待补充
GTGT — 大于比较比较大于比较;SCL 里通常直接用 >。待补充
GEGE — 大于等于比较比较大于等于比较;SCL 里通常直接用 >=。待补充
LTLT — 小于比较比较小于比较;SCL 里通常直接用 <。待补充
LELE — 小于等于比较比较小于等于比较;SCL 里通常直接用 <=。待补充
ABSABS — 绝对值数学取绝对值;整数和浮点数都支持。待补充
LIMITLIMIT — 限幅数学把值限制在 MIN/MAX 之间;超出范围时输出边界值。待补充
MINMIN — 最小值数学取两个值中的较小值。待补充
MAXMAX — 最大值数学取两个值中的较大值。待补充
SQRTSQRT — 平方根数学求平方根;输入不能为负。待补充
SCALE_XSCALE_X — 缩放到范围转换把 0.0~1.0 的浮点数映射到 MIN~MAX;模拟量标定常用。详解 →
NORM_XNORM_X — 归一化转换把 MIN~MAX 的输入映射到 0.0~1.0;和 SCALE_X 互为逆运算。详解 →
CONVERTCONVERT — 类型转换转换在兼容数据类型之间转换;SCL 也常用 INT_TO_REAL 等显式转换。待补充
ROUNDROUND — 四舍五入转换把浮点数四舍五入到整数。待补充
TRUNCTRUNC — 截断取整转换向零截断取整,不四舍五入。待补充
CEILCEIL — 向上取整转换取不小于输入的最小整数。待补充
FLOORFLOOR — 向下取整转换取不大于输入的最大整数。待补充
MOVE赋值与 MOVE — 把值写到变量移动SCL 里用 := 赋值;LAD 的 MOVE 在 SCL 中就是赋值,不要生搬硬套。详解 →
MOVE_BLKMOVE_BLK — 块移动移动从数组起始元素复制 COUNT 个元素到另一个数组;源和目标元素类型必须一致。详解 →
FILL_BLKFILL_BLK — 填充数组移动把同一个值写进目标数组的 COUNT 个元素;常用于批量清零或预置。详解 →
BLKMOVBLKMOV — 按字节移动移动按字节移动存储区(Legacy);新代码优先 MOVE_BLK。待补充
UMOVE_BLKUMOVE_BLK — 不可中断块移动移动不可中断的块移动;用于需要一致性的数据。待补充
UFILL_BLKUFILL_BLK — 不可中断块填充移动不可中断的块填充;用于需要一致性的数据。待补充
DECODECO — 解码字逻辑把位号解码成一位热码。待补充
ENCOENCO — 编码字逻辑把一位热码编码成位号。待补充
MUXMUX — 多路选择字逻辑按 K 选择其中一个输入。待补充
DEMUXDEMUX — 多路分配字逻辑把输入送到 K 指定的输出。待补充
SHLSHL — 左移移位左移,低位补 0。待补充
SHRSHR — 右移移位右移,高位补 0。待补充
ROLROL — 循环左移移位循环左移,移出的位从右侧补回。待补充
RORROR — 循环右移移位循环右移,移出的位从左侧补回。待补充
CONCATCONCAT — 拼接字符串字符串把多个 STRING/WSTRING 拼成一个;注意目标长度和参数个数。详解 →
LENLEN — 字符串长度字符串取字符串当前长度;空串返回 0。待补充
LEFTLEFT — 取左字符串字符串取左边 N 个字符。待补充
RIGHTRIGHT — 取右字符串字符串取右边 N 个字符。待补充
MIDMID — 取中间字符串字符串从位置 P 取 N 个字符;位置从 1 开始。待补充
FINDFIND — 查找子串字符串查找子串位置;找不到返回 0。待补充
INSERTINSERT — 插入字符串字符串在指定位置插入字符串。待补充
DELETEDELETE — 删除字符串字符串删除指定位置的一段字符。待补充
REPLACEREPLACE — 替换字符串字符串替换指定位置的一段字符。待补充
LOWER_BOUNDLOWER_BOUND — 数组下界数组与DB读数组下界;配合 VARIANT/ARRAY[*] 使用。待补充
UPPER_BOUNDUPPER_BOUND — 数组上界数组与DB读数组上界;配合 VARIANT/ARRAY[*] 使用。待补充
COUNTOFELEMENTSCountOfElements — 数组元素个数数组与DB读 VARIANT 数组的元素个数。待补充
SERIALIZESerialize — 序列化数组与DB把变量序列化成字节数组。待补充
DESERIALIZEDeserialize — 反序列化数组与DB把字节数组反序列化回变量。待补充
T_ADDT_ADD — 时间相加日期时间两个 Time 相加。待补充
T_SUBT_SUB — 时间相减日期时间两个 Time 相减。待补充
T_DIFFT_DIFF — 时间差日期时间两个 Time_Of_Day 的差,结果是 Time。待补充

常见问题

SCL 指令表和 TIA 帮助有什么区别?

本站按“怎么写、参数是什么、常见坑”重新组织,每个已发布指令配完整 SCL 示例和本地校验;TIA 帮助是官方事实源,适合查完整定义和版本差异。

每条指令都有页面吗?

不是。索引里先列出常用指令,标“详解”的已有独立页面;标“待补充”的保留在索引中,按搜索需求和验证进度逐步补,不生成空页。

页面上的代码能直接导入 TIA 吗?

可以。每个示例都是完整的 FC/FB 块,页面展示的源码和 TiaLink 导入载荷是同一份;导入后不会自动运行,FB 需要在 OB 里调用并接变量。

支持哪些 TIA 版本和 CPU?

内容以 TIA Portal V19 帮助为事实核对,面向 S7-1200/1500。示例只用标准 SCL;低版本或 1200 上遇到类型/指令差异时,以实际编译结果为准。