博文纲领:
西门子SCL编程入门教程连载(14)-时钟读写指令
DST参数则表示是否采用夏令时,数据类型为布尔型,TRUE表示采用夏令时,FALSE表示采用标准时间。使用WR_LOC_T指令,可以将本地时间设置为2019-12-17 10:15:00(非夏令时)。综上所述,西门子SCL编程语言提供了全面的指令集,用于实现PLC时钟的读取与写入功能。
在西门子SCL编程中,处理日期和时间数据是常见需求。西门子SCL语言遵循IEC61131-3标准,支持多种日期时间数据类型,以便于执行相关的指令操作。根据IEC61131-3:2013,一共有8种时间日期类型:TIME,LTIME,S5TIME,DATE,TOD,LTOD,DATE_AND_TIME,DATE_AND_LTIME,以及DTL。
MOVE_BLK_VARIANT 指令位于任务卡的“基本指令”→“移动操作”中,梯形图或功能块图编程时,可直接拖放至函数或函数块。SCL 编程时,通过“MOVE”自动提示指令参数。指令参数包括源索引(SRC_INDEX)与目标索引(DEST_INDEX)。源索引和目标索引值从零开始,根据数组下限调整实际存储位置。
在西门子SCL编程中,PEEK指令用于读取输入缓存区(I)、输出缓存区(Q)、位存储区(M)及数据块(DB)中的数据。通常作为间接寻址工具,它支持以位(Bit)、字节(Byte)、字(Word)及双字(Double Word)形式操作。默认情况下,PEEK指令处理字节型数据,若无指定数据类型。
NORM_X指令通过将数据按比例缩放,使其落入到闭区间[0,1]之间,以实现数据归一化。在西门子SCL编程语言中,NORM_X指令位于【基本指令】-【转换】模块。例如,若比例阀使用4~20mA电流信号输出,其压力量程为0~25000 mbar。
西门子SCL常用指令
IF语句根据条件执行特定指令序列。CASE语句根据数值执行不同指令序列。FOR循环重复执行至计数范围外,WHILE循环在条件满足时重复执行。REPEAT循环在条件不满足时重复执行。CONTINUE和EXIT用于结束循环,GOTO用于程序跳转,RETURN用于退出当前块。IF语句示例:根据Tag_1的值执行不同指令序列。
在SCL中,有许多常用的指令,如IF、ELSEIF、ELSE、WHILE、REPEAT、FOR和CASE等。这些指令的功能各异,能够满足不同控制需求。
前言:西门子博图SCL语言在逻辑实现方面比梯形图更具优势,学习过程中,我整理了一些SCL的基本指令。起保停 - 梯形图与SCL直观比较:通过符号【:=】为线圈赋值,使用AND与OR进行逻辑判断。IF..ELSE - 点动 - 梯形图与SCL直接比较:SCL条件为TRUE时,将变量置位。需添加ELSE对变量执行复位操作。
IF 指令含有含有三个分支,分别是Then ,Else 和ElsIF。图2 IF 语句 图3 浮点数比较条件 IF语句应该是SCL里面最常用的语句了,常用于条件判断。判断类型可以是BOOL类型,可以是浮点类型等等,基本上所有类型都可以判断,只要比较的两个变量类型是一样。
在西门子SCL编程语言中,NORM_X指令位于【基本指令】-【转换】模块。例如,若比例阀使用4~20mA电流信号输出,其压力量程为0~25000 mbar。某一瞬时值为TMP_Value1,归一化后存储于变量tag_normalized中,公式为:TMP_Value1归一化后值 = (TMP_Value1 - Xmin) / (Xmax - Xmin)。
学SCL必知的9种特殊指令
1、PEEK POKE指令 - 用于读写存储器,可参考链接。转换操作也可参考链接。 **程序控制指令**:是SCL编程的基础,接近高级语言指令。这些功能通过LAD/FBD也可实现,但使用SCL编写更为方便,逻辑更清晰。 - **IF-THEN语句**:用于将程序执行转移到两个分支之一,取决于条件为True还是False。
2、深入探索SCL编程的九种特殊指令 SCL语言作为LAD/FBD功能的扩展,为我们提供了强大的控制逻辑工具,其中包括一系列独特的指令,如图1-3所示,涵盖了存储器操作、数据转换和高级程序控制。
3、这些特殊指令包括读写存储器的PEEK POKE指令、转换操作、以及程序控制指令。程序控制指令是SCL编程的基础,接近高级语言指令,使用这些指令能让逻辑条理更加清晰。程序控制指令包含IF-THEN、CASE、FOR、WHILE、REPEAT-UNTIL、CONTINUE、EXIT、GOTO和RETURN等。
4、SCL,即结构化控制语言(Structured Control Language)是用于SIMATIC S7CPU的基于PASCAL的高级编程语言。结构化语言是专门描述一个功能单元逻辑要求的。它不同于自然语言,也区别于任何特定的程序语言(如VB、VC等),是一种介于两者之间的语言。结构化描述语言一般采用英语,这与一般编程语言很相似。
5、移位寄存器SFT、可逆移位寄存器SFTR、字移位WSFT、算术左移ASL、算术右移ASR、循环左移ROL、循环右移ROR、一个数字左移SLD、一个数字右移SRD、左移N位NASL、双字左移N位NSLL、右移N位NASR、双字右移N位NSRL等指令助记符也属于其中。