可编程序控制器(PLC)知识总结 您所在的位置:网站首页 plc主要特点是哪四个部分 可编程序控制器(PLC)知识总结

可编程序控制器(PLC)知识总结

2024-06-26 19:17| 来源: 网络整理| 查看: 265

可编程序控制器(PLC)知识总结 一、PLC概述、结构和工作原理(一)PLC的特点与功能(二)PLC基本结构(三)PLC工作过程(四)PLC的扫描过程(五)PLC品牌 二、S7-1500硬件及系统特性介绍(一)S7-1500PLC硬件介绍(二)S7-1500PLC系统性能 三、TIA博图(Portal)软件的安装与介绍四、编程语言学习(一)编程语言1.LAD(梯形图)2.FBD(功能块图)3.SCL(结构化控制语言) (二)变量与数据类型1.变量2.基本数据类型3.复杂数据类型4.参数数据类型 (三)程序中的块(四)位逻辑运算(五)计数器(六)定时器(七)移动指令(八)比较指令(九)数学函数(十)转换指令(十一)字逻辑运算(十二)移位和循环(十三)程序控制指令(十四)日期和时间(十五)字符串+字符(十六)中断(十七)分布式IO之组态与连接 参考博图软件以及西门子S7-1200/1500PLC学习手册 本文章用于记录学习总结

一、PLC概述、结构和工作原理

可编程序控制器(Programmable Logic Controller)简称PLC,是一种数字运算操作的电子系统,它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字、模拟的输入和输出,控制各种类型的机械或生产过程。

(一)PLC的特点与功能

PLC的主要特点: (1) 抗干扰能力强,可靠性高; (2) 程序简单易学,系统的设计调试周期短; (3) 安装简单,维修方便; (4) 采用模块化结构,体积小,重量轻; (5) 丰富的I/O接口模块,扩展能力强; PLC的功能: (1) 控制功能:逻辑控制、定时控制、计数控制、顺序控制; (2) 数据采集、存储与处理功能:数学运算功能、数据与模拟数据处理,有的还具有PID功能; (3) 输入/输出接口调理功能:具有A/D、D/A转换功能,通过I/O模块完成对模拟量的控制和调节; (4) 通信、联网功能:PLC通信包括PLC相互之间、PLC与上位计算机以及和其他智能设备之间的通信; 在这里插入图片描述

(5) 人机界面功能: 在这里插入图片描述

(6) 编程、调试功能:使用复杂程度不同的手持、便携和桌面式编程器、工作站和操作屏,进行编程、调试、监视、试验和记录,并通过打印机打印出程序文件。

(二)PLC基本结构

在这里插入图片描述

可编程序控制器的功能结构区由CPU(中央处理器)、存储器和输入接口/输出接口三部分组成。

(三)PLC工作过程

在这里插入图片描述 PLC的运行程序的方式与微型计算机相比有较大的不同,微型计算机运行程序时,一旦执行到END指令,程序便运行结束;而PLC从0号存储地址所存放的第一条用户程序开始,在无中断或跳转的情况下,按存储地址号递增的方向顺序逐条执行用户程序,直到END指令结束。然后再从头开始执行,并周而复始地重复,直到停机或者运行状态为STOP,把PLC执行程序的这种工作方式称为扫描工作方式。每扫描完一次程序就构成了一个扫描周期。另外,PLC对输入、输出信号的处理与微型计算机不同。微型计算机对输入、输出信号实时而PLC对输入、输出信号是集中批处理。

(四)PLC的扫描过程

在这里插入图片描述

PLC扫描的工作方式主要分为三个阶段:输入扫描、程序执行和输出刷新。

(五)PLC品牌

目前PLC得到广泛应用。其中最为代表的公司有德国的西门子公司、AEG公司,法国的TE(施耐德)公司,美国的A-B公司,日本的小型的PLC具有一定的特色,知名品牌有三菱、欧姆龙、松下、富士等。目前我国使用的小型PLC主要以日本和国产的品牌为主,而大中型PLC主要以欧美品牌为主。 本知识总结主要以西门子S7-1200/1500来介绍。

二、S7-1500硬件及系统特性介绍

SIMATIC S7 系列产品分为:S7-200、S7-200CN、S7-200 SMART、S7-300、S7-400、S7-1200和S7-1500共七个产品系列。SIMATIC产品除了SIMATIC S7外还有M7、C7和WinAC系列。这里主要简单介绍S7-1500系列PLC。

(一)S7-1500PLC硬件介绍

S7-1500系列PLC主要用于中高端工厂自动化控制系统,适合较复杂的应用。S7-1500 CPU模块有标准型,紧凑型,分布式三种类型。SIMATIC S7-1500标准型控制器如下图所示: 在这里插入图片描述

SIMATIC S7-1500组态编程使用STEP 7 V13 Update4 或者以上版本,支持的编程语言有LAD、FBD、SCL、STL、GRAPH。中央机架最大支持32个模块:CPU +31个模块(I/O、通讯、电源),机架是采用单排配置,所有模块都在一个导轨上,通过U型连接器连接。超过这些可通过ET 200MP分布式 I/O进行扩展。S7-1500的通讯模块主要有DP、PN、以太网。S7-1500 CPU 标配以太网端口,PROFIBUS接口。S7-1500PLC有两种电源:系统电源(PS)和负载电源(PM)。 在这里插入图片描述

S7-1500标准型CPU连接的信号模块和ET200MP的信号模块是相同的,信号模块分为数字量模块和模拟量模块。数字量模块分为:数字量输入模块(DI)、数字量输出模块(DQ)和数字量输入/输出混合模块(DI/DQ)。模拟量模块分为:模拟量输入模块(AI)、模拟量输出模块(AQ)和模拟量输入/输出混合模块(AI/AQ)。

(二)S7-1500PLC系统性能

S7-1500PLC相对于300/400性能上有明显提升:响应时间短,提高了生产效率;缩短了程序扫描周期;CPU位指令处理时间最短可达1ns;集成运动控制,可控制高达128轴。 CPU配置显示面板:统一纯文本诊断信息,缩短停机和诊断时间;即插即用,无需编程;可设置操作密码;可设置CPU的IP地址。 配置PROFINET标准接口:具有PN IRT功能,可确保精准的响应时间以及工厂设备的高精度工作;集成具有不同IP地址的标准以太网口和PROFINET网口;集成网络服务器,可通过网页浏览器快速浏览诊断信息。 优化的诊断机制:STEP7、HMI、Web Server、CPU显示面板支持统一数据显示,可进行高效故障分析;集成系统诊断功能,模块系统诊断功能支持即插即用模式;即便CPU处于停止模式,也不会丢失系统故障和报警信息。 关于S7-1500PLC的详细介绍参考西门子S7-1200/1500PLC学习手册第三章。

三、TIA博图(Portal)软件的安装与介绍

TIA博途平台包含:SIMATIC STEP 7、SIMATIC WinCC 、SINAMICS Startdrive。 (1) SIMATIC STEP 7:STEP 7是用于组态S7-1200、S7-1500、S7-300/400和WinAC控制器系列的工程组态软件。 (2) SIMATIC WinCC:WinCC是一种可视化软件,组态SIMATIC面板(触摸屏)、SIMATIC工业PC以及标准PC的工程组态软件。 (3) SINAMICS Startdrive:此软件能够直观的将SINAMICS变频器集成到自动化环境中。由于具有相同操作概念,消除了接口瓶颈,并且具有较高的用户友好性,因此可将SINAMICS变频器快速集成到自动环境中,并使用TIA博途对它们进行调试。 关于软件安装,先安装STEP7(对PLC的编程),再安装WinCC(用于对触摸屏的编程),最后安装PLCSIM(用于PLC的仿真,不需要可以不用安装),Sim_EKB_Install_2017_04_01是获取西门子许可证的工具软件。 软件界面介绍参考:西门子S7-1200/1500PLC学习手册第四章。

四、编程语言学习 (一)编程语言

STEP 7所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编程语言,并且在STEP 7中可以相互转换。专业版附加对GRAPH(顺序功能图)、SCL(结构化控制语言)、HiGraph(图形编程语言)、CFC(连续功能图)等编程语言的支持。不同的编程语言可供不同知识背景的人员采用。下面着重介绍最常用的三种编程语言:LAD、FBD、SCL。

1.LAD(梯形图)

LAD(梯形图)是一种图形语言,比较形象直观,容易掌握,用得最多,堪称用户第一编程语言。梯形图与继电器控制电路图的表达方式极为相似,适合于熟悉继电器控制电路的用户使用,特别适用于数字量逻辑控制。 在这里插入图片描述

常规指令有如下: —| |—常开触点:当操作数的信号状态为“1”时,常开触点将关闭,同时输出的信号状态置位为输入的信号状态。当操作数的信号状态为“0”时,不会激活常开触点,同时该指令输出的信号状态复位为“0”。 —|/|—常闭触点:当操作数的信号状态为“1”时,常闭触点将打开,同时该指令输出的信号状态复位为“0”。当操作数的信号状态为“0”时,不会启用常闭触点,同时将该输入的信号状态传输到输出。 —( )—线圈:可以使用“赋值”指令来置位指定操作数的位。如果线圈输入的逻辑运算结果 (RLO) 的信号状态为“1”,则将指定操作数的信号状态置位为“1”。如果线圈输入的信号状态为“0”,则指定操作数的位将复位为“0”。 梯形图编程原则: ① 每一逻辑行总是起于左母线,最后终止于线圈或右母线(右母线可以不画出)。 ② 无论选择哪种机型的PLC,所用元件的编号必须在该机型的有效范围内。 ③ 触点的使用次数不受限制。 ④ 在梯形图中同一线圈只能出现一次。如果在程序中,同一线圈使用了两次或多次,称为“双线圈输出”。对于“双线圈输出”,有些PLC视为语法错误,绝对不允许(如三菱FX系列PLC);有些PLC则将前面的输出视为无效,只有最后一次输出有效(如西门子PLC);而有些PLC在含有跳转指令或步进指令的梯形图中允许双线圈输出。 ⑤ 对于不可编程的梯形图必须经过等效变换,变成可编程图形。 ⑥ 在有几个串联电路相并联时,应将串联触点多的回路放在上方,归纳为“上多下少”的原则;在有几个并联电路相串联时,应将并联触点多的回路放在左方,归纳为“左多有少”的原则。因为这样所编制的程序简洁明了,语句较少。 ⑦ 为了安全考虑,PLC输入端子上接入的停止按钮和急停按钮,应使用常闭触点,而不应使用常开触点。

2.FBD(功能块图)

FBD(功能块图)使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示。FBD比较适合于有数字电路基础的编程人员使用。 在这里插入图片描述

&:“与”运算:可以使用指令“与”运算来查询两个或更多指定操作数的信号状态,并根据“与”运算的真值表评估这些信号状态。当操作数“TagIn_1”和“TagIn_2”的信号状态为“1”时,输出“TagOut”将置位,当操作数“TagIn_1”和“TagIn_2”为“0”时,该输出将复位。 在这里插入图片描述

≥1:“或”运算:可以使用指令“或”运算来查询两个或更多指定操作数的信号状态,并根据“或”运算的真值表评估这些信号状态。如果操作数“TagIn_1”或“TagIn_2”的信号状态为“1”,则输出“TagOut”将置位。 在这里插入图片描述

取反 RLO:可以使用“取反 RLO”指令对逻辑运算结果 (RLO) 的信号状态进行取反。满足以下条件时,将置位输出“TagOut”:输入“TagIn_1”和/或“TagIn_2”的信号状态为“0”;输入“TagIn_3”和/或“TagIn_4”的信号状态为“0”,或者输入“TagIn_5”的信号状态为“1”。 在这里插入图片描述

=:赋值:可以使用“赋值”指令来置位指定操作数的位。 如果该功能框输入逻辑运算结果 (RLO) 的信号状态为“1”,则指定操作数的信号状态将置位为“1”。 如果该功能框输入的信号状态为“0”,指定操作数的位将复位为“0”。 在这里插入图片描述

3.SCL(结构化控制语言)

S7-SCL(Structured Control Language:结构控制语言)是一种类似于PASCAL的高级文本编辑语言,可以简化数学计算、数据管理和组织工作。 在这里插入图片描述

① 选择语句 选择语句有IF和CASE,其使用方法和C语言等高级计算机语言的用法类似,其功能如下表所示。

语句说明IF是二选一的语句,判断条件是“TRUE”或者“FALSE”控制程序进入不同的分支进行执行CASE是一个多选语句,根据变量值,程序有多个分支 IF:条件执行 IF THEN END_IF; CASE:创建多路分支 CASE _variable_name_ OF 1: // Statement section case 1; 2..4: // Statement section case 2 to 4; ELSE // Statement section ELSE; END_CASE;

② 循环语句 S7-SCL提供的循环语句有三种:FOR语句、WHILE语句和REPEAT语句,其功能如下表所示。

语句说明FOR只要控制变量在指定的范围内,就重复执行语句序列WHILE只要一个执行条件满足,某一语句就周而复始地执行REPEAT重复执行某一语句,知道终止该程序的条件满足为止 FOR:在计数循环中执行 FOR INDEX:=1 TO 50 BY 2 DO // Statement section FOR; END_FOR; WHILE:满足条件时执行 WHILE _condition_ DO // Statement section WHILE; END_WHILE; REPEAT:终止的条件满足前执行 REPEAT INDEX:=INDEX+2;//循环执行 UNTIL INDEX>50 END_REPEAT

③ 程序跳转语句 在S7-PLC中的跳转语句有四种:CONTINUE语句、EXIT语句、GOTO语句和RETURN语句。其功能说明如下表所示。

语句说明CONTINUE用于终止当前循环反复执行EXIT不管循环终止条件是否满足,在任意点退出循环GOTO使程序立即跳转到指定的标号处RETURN使得程序跳出正在执行的块 (二)变量与数据类型 1.变量

PLC中的变量的定义包含变量名称、数据类型、地址、保持性、其他功能与注释。 要求:允许使用字母、数字、特殊字符;不建议使用这些预留的关键字:int、byte等;变量名称中不允许使用双引号。 常用地址: I:输入映像寄存器 Q:输出映像寄存器 M:中间寄存器 L:临时变量寄存器 PI:(外部输入寄存器) PQ:(外部输出寄存器) T:(定时器)、C:(计数器) DB: 数据寄存器 保持性:可保持/不可保持 可保持:断电后重启数据仍然保持; 不可保持:断电后数据不会保持。 注:若CPU出现重大故障后停机,则所有数据丢失。

2.基本数据类型

在这里插入图片描述

3.复杂数据类型

(1)数组(ARRAY) 数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-32768~32767,要求下标的下限。 在这里插入图片描述

(2)结构(STRUCT) 结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据。 在这里插入图片描述

(3) 字符串(STRING) 字符串是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来。 在这里插入图片描述

(4)日期和时间(DATE_AND_TIME) 用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,1~6的代码为2~7。 在这里插入图片描述 (5)用户定义的数据类型(UDT) 用户定义数据类型表示自定义的结构,存放在UDT块中(UDT1~UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间。 (6)功能块类型(FB、SFB) 这种数据类型仅可以在FB的静态变量区定义,用于实现多背景DB。

4.参数数据类型

参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有以下几种: (1)TIMER(定时器)和COUNTER(计数器)。 (2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。 (3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。 (4)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。

(三)程序中的块

PLC内块的分类与使用: OB:组织块,不需要调用(不允许)直接执行,每一个组织块都具有自己相应的功能。 FC:函数,是没有专用存储区的代码块。FC中形参与实参必须一一对应(即每一个形参都必须有一个实参)。 FB:函数块,是将自身的值永久存储在背景数据块中的代码块,从而在块执行后这些值仍然可用。 DB:数据块,保存程序数据。大致分为全局数据块和背景数据块。 在这里插入图片描述 1.线性程序(线性编程) 所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中,块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代替的硬接线继电器控制类似,CPU逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。 2.分部式程序(分部编程、分块编程) 所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中包含按顺序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的 控制程序可考虑采用这种程序结构。 3.结构化程序(结构化编程或模块化编程) 所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序块来完成整个自动化控制任务。 结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合于较复杂自动化控制任务的设计。

(四)位逻辑运算

位逻辑指令用于二进制数的逻辑运算。位逻辑运算的结果简称为RLO。位逻辑指令是常用的指令之一,主要有与运算指令、与非运算指令、或运算指令、或非运算指令、置位运算指令、复位运算指令、嵌套指令和线圈指令等。

LAD指令功能描述功能描述—( R )—复位输出可以使用“复位输出”指令将指定操作数的信号状态复位为“0”—( S )—置位输出使用“置位输出”指令,可将指定操作数的信号状态置位为“1”SET_BF置位位域使用“置位位域”(Set bit field) 指令,可对从某个特定地址开始的多个位进行置位RESET_BF复位位域可以使用“复位位域”(Reset bit field) 指令复位从某个特定地址开始的多个位SR置位/复位触发器可以使用“置位复位触发器”指令,根据输入 S 和 R1 的信号状态,置位或复位指定操作数的位RS复位/置位触发器使用“复位置位触发器”指令,根据 R 和 S1 输入端的信号状态,复位或置位指定操作数的位–P––N––§–在信号上升沿置位操作数可以使用“在信号上升沿置位操作数”指令在逻辑运算结果 (RLO) 从“0”变为“1”时置位指定操作数()–(N)–在信号下降沿置位操作数可以使用“在信号下降沿置位操作数”指令在逻辑运算结果 (RLO) 从“1”变为“0”时置位指定操作数()P_TRIG扫描 RLO 的信号上升沿使用“扫描 RLO 的信号上升沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“0”到“1”的更改N_TRIG扫描 RLO 的信号下降沿使用“扫描 RLO 的信号下降沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“1”到“0”的更改R_TRIG检查信号上升沿使用“检测信号上升沿”指令,可以检测输入 CLK 的从“0”到“1”的状态变化F_TRIG检查信号下降沿使用“检测信号下降沿”指令,可以检测输入 CLK 的从“1”到“0”的状态变化

注:具体参数用法参考手册。

(五)计数器

计数器的功能是完成计数功能,可以实现加法计数和减法计数。 (1) CTU:加计数:可以使用“加计数”指令,递增输出 CV 的值。 在这里插入图片描述 在这里插入图片描述

当“TagIn_1”操作数的信号状态从“0”变为“1”时,将执行“加计数”指令,同时“Tag_CV”操作数的当前计数器值加 1。每检测到一个额外的信号上升沿,计数器值都会递增,直至达到该数据类型的上限 (INT = 32767)。PV 参数的值作为确定“TagOut”输出的限制。只要当前计数器值大于或等于操作数“Tag_PV”的值,输出“TagOut”的信号状态就为“1”。在其它任何情况下,输出“TagOut”的信号状态均为“0”。 (2) CTD:减计数:可以使用“减计数”指令,递减输出 CV 的值。 在这里插入图片描述 在这里插入图片描述

当“TagIn_1”操作数的信号状态从“0”变为“1”时,执行该指令且“Tag_CV”输出的值减 1。每检测到一个信号上升沿,计数器值就会递减 1,直到达到所指定数据类型的下限 (INT = -32768)。只要当前计数器值小于或等于 0,“TagOut”输出的信号状态就为“1”。在其它任何情况下,输出“TagOut”的信号状态均为“0”。 (3) CTUD:加减计数:可以使用“加减计数”指令,递增和递减输出 CV 的计数器值。 在这里插入图片描述 在这里插入图片描述

如果输入“TagIn_1”或“TagIn_2”的信号状态从“0”变为“1”(信号上升沿),则执行“加减计数”指令。输入“TagIn_1”出现信号上升沿时,当前计数器值加 1 并存储在输出“Tag_CV”中。输入“TagIn_2”出现信号上升沿时,计数器值减 1 并存储在输出“Tag_CV”中。输入 CU 出现信号上升沿时,计数器值将递增,直至其达到上限值 32767。输入 CD 出现信号上升沿时,计数器值将递减,直至其达到下限 (INT=-32768)。只要当前计数器值大于或等于“Tag_PV”输入的值,“TagOut”输出的信号状态就为“1”。在其它任何情况下,输出“TagOut”的信号状态均为“0”。只要当前计数器值小于或等0,“TagOut_QD”输出的信号状态就为“1”。在其它任何情况下,输出“TagOut_QD”的信号状态均为“0”。 更多传统计数器参考博途中的信息系统。

(六)定时器

博途的SIMATIC定时器指令较为丰富,除了常用的接通延时定时器(SD)和断开延时定时器(SF)之外,还有脉冲定时器(SP)、扩展脉冲定时器(SE)和保持型接通延时定时器(SS)共5类。定时器有其存储区域,每个定时器有一个16位的字和一个二进制的值。定时器的字存放当前定时值。二进制的值表示定时器的接点状态。 (1) TP:生成脉冲:使用“生成脉冲”(Generate pulse) 指令,可以将输出 Q 置位为预设的一段时间。 在这里插入图片描述 在这里插入图片描述

当“Tag_Start”操作数的信号状态从“0”变为“1”时,PT 参数预设的时间开始计时,且“Tag_Status”操作数将设置为“1”。当前时间值存储在“Tag_ElapsedTime”操作数中。定时器计时结束时,操作数“Tag_Status”的信号状态复位为“0”。 (2) TON:生成接通延时:可以使用“生成接通延时”(Generate on-delay) 指令将 Q 输出的设置延时设定的时间 PT。 在这里插入图片描述 在这里插入图片描述

当“Tag_Start”操作数的信号状态从“0”变为“1”时,PT 参数预设的时间开始计时。超过该时间周期后,操作数“Tag_Status”的信号状态将置“1”。只要操作数 Tag_Start 的信号状态为“1”,操作数 Tag_Status 就会保持置位为“1”。当前时间值存储在“Tag_ElapsedTime”操作数中。当操作数 Tag_Start 的信号状态从“1”变为“0”时,将复位操作数 Tag_Status。 (3) TOF:生成关断延时:可以使用“生成关断延时”(Generate off-delay) 指令将 Q 输出的复位延时设定的时间 PT。 在这里插入图片描述 在这里插入图片描述

当操作数“Tag_Start”的信号状态从“0”变为“1”时,操作数“Tag_Status”的信号状态将置位为“1”。当“Tag_Start”操作数的信号状态从“1”变为“0”时,PT 参数预设的时间将开始计时。只要该时间仍在计时,“Tag_Status”操作数就会保持置位为 TRUE。该时间计时完毕后,“Tag_Status”操作数将复位为 FALSE。当前时间值存储在“Tag_ElapsedTime”操作数中。 (4) TONR:时间累加器:可以使用“时间累加器”指令来累加由参数 PT 设定的时间段内的时间值。 在这里插入图片描述 在这里插入图片描述

当“Tag_Start”操作数的信号状态从“0”变为“1”时,PT 参数预设的时间开始计时。只要操作数“Tag_Start”的信号状态为“1”,该时间就继续计时。当操作数“Tag_Start”的信号状态从“1”变为“0”时,计时将停止,并记录操作数 Tag_ElapsedTime 中的当前时间值。当操作数“Tag_Start”的信号状态从“0”变为“1”时,将继续从发生信号跃迁“1”到“0”时记录的时间值开始计时。达到 PT 参数中指定的时间值时,“Tag_Status”操作数的信号状态将置位为“1”。当前时间值存储在“Tag_ElapsedTime”操作数中。 (5)—( TP )—:启动脉冲定时器:使用“启动脉冲定时器”指令启动将指定周期作为脉冲的 IEC 定时器。 (6)—( TON )—:启动接通延时定时器:使用“启动接通延时定时器”指令启动将指定周期作为接通延时的 IEC 定时器。 (7)—( TOF )—:启动关断延时定时器:使用“启动关断延时定时器”指令启动将指定周期作为接通延时的 IEC 定时器。 (8)—( TONR )—:时间累加器:可以使用“时间累加器”指令记录指令“1”输入的信号长度。 (9)—( RT )—:复位定时器:使用“复位定时器”指令,可将 IEC 定时器复位为“0”。 (10)—( PT )—:加载持续时间:可以使用“加载持续时间”指令为 IEC 定时器设置时间。 更多传统定时器参考博途中的信息系统。

(七)移动指令

(1)MOVE:移动值:可以使用“移动值”指令将 IN 输入操作数中的内容传送给 OUT1 输出的操作数中。 在这里插入图片描述

如果操作数“TagIn”返回信号状态“1”,则执行该指令。该指令将操作数“TagIn_Value”的内容复制到操作数“TagOut_Value”,并将“TagOut”的信号状态置位为“1”。 (2)MOVE_BLK:块移动:可以使用“移动块”指令将一个存储区(源范围)的数据移动到另一个存储区(目标范围)中。 在这里插入图片描述 在这里插入图片描述

如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。从第三个元素开始,该指令选择 #a_array 变量中的三个 INT 元素,并将其内容复制到 #b_array 输出变量中,从第二个元素开始。如果该指令成功执行,则使能输出 ENO 的信号状态为“1”,同时置位输出“TagOut”。 (3)UMOVE_BLK:不可中断的存储区移动:可以使用“不可中断的存储区移动”(Move block uninterruptible) 指令将一个存储区(源范围)的数据移动到另一个存储区(目标范围)中。 在这里插入图片描述 在这里插入图片描述

如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。从第三个元素开始,该指令选择 #a_array 变量中的三个 INT 元素,并将其内容复制到 #b_array 输出变量中,从第二个元素开始。此移动操作不会被操作系统的其它任务打断。如果成功执行该指令,则输出 ENO 的信号状态为“1”,并将置位输出“TagOut”。 (4)FILL_BLK:填充块:可以使用“填充存储区”指令,用 IN 输入的值填充一个存储区域(目标范围)。 在这里插入图片描述 在这里插入图片描述

如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。该指令从操作数从第一个元素开始,将 #FillValue 的值复制到 #TargetArea 输出变量中三次。如果成功执行该指令,则将 TagOut 和“ENO”使能输出的信号状态置位为“1”。 (5)UFILL_BLK:不可中断的存储区填充:可以使用“不可中断的存储区填充”(Fill block uninterruptible) 指令,用 IN 输入的值填充一个存储区域(目标范围)。该指令不可中断。 在这里插入图片描述 在这里插入图片描述

如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则执行该指令。该指令从操作数从第一个元素开始,将 #FillValue 的值复制到 #TargetArea 输出变量中三次。此移动操作不会被操作系统的其它任务打断。如果成功执行该指令,则将 TagOut 和“ENO”使能输出的信号状态置位为“1”。 (6)SWAP:交换:可以使用“交换”指令更改输入 IN 中字节的顺序,并在输出 OUT 中查询结果。 在这里插入图片描述 在这里插入图片描述

如果操作数“TagIn”的信号状态为“1”,则执行“交换”指令。字节的顺序已更改,并存储在操作数“TagOut_Value”中。

(八)比较指令

比较指令可以对如整数、双整数、实数等数据类型的数值进行比较。比较指令对输入操作数1和输入操作数2进行比较,如果比较结果为真,则逻辑运算结果RLO为“1”,反之则为“0”。比较的两个数必须数据类型相同。

LAD指令功能描述说明CMP ==等于可以使用“等于”指令判断第一个比较值()是否等于第二个比较值()CMP 不等于使用“不等于”指令判断第一个比较值()是否不等于第二个比较值()CMP >=大于或等于可以使用“大于或等于”指令判断第一个比较值()是否大于或等于第二个比较值()CMP >大于可以使用“大于”指令确定第一个比较值()是否大于第二个比较值()CMP


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有