电气基础与S7-1200PLC控制技术 课件 第5章 S7-1200及其扩展与工艺指令_第1页
电气基础与S7-1200PLC控制技术 课件 第5章 S7-1200及其扩展与工艺指令_第2页
电气基础与S7-1200PLC控制技术 课件 第5章 S7-1200及其扩展与工艺指令_第3页
电气基础与S7-1200PLC控制技术 课件 第5章 S7-1200及其扩展与工艺指令_第4页
电气基础与S7-1200PLC控制技术 课件 第5章 S7-1200及其扩展与工艺指令_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

点击此处结束放映电子教案《电气基础与S7-1200PLC控制技术》第5章

S7-1200及其扩展与工艺指令点击此处结束放映《电气基础与S7-1200PLC控制技术》

扩展指令5.1工艺指令5.2《电气基础与S7-1200PLC控制技术》点击此处结束放映

点击此处结束放映《电气基础与S7-1200PLC控制技术》扩展指令5.1点击此处结束放映

西门子S7-1200PLC的扩展指令用于更多选项的复杂指令,例如日期和时间、中断、报警等指令,工艺指令是指工艺函数,例如PID控制、运动控制等指令,通信指令用于通信的专用指令。这些指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。功能指令的丰富程度及其使用的方便程度是衡量PLC性能的一个重要指标。本章重点以梯形图语言形式,介绍扩展指令、工艺指令以及部分通信指令的编程方法与应用,并以备注说明的形式强调重要指令的工作原理、操作工程和重要参数设置等需要重点关注的环节。《电气基础与S7-1200PLC控制技术》5.1.1日期、时间和时钟功能指令点击此处结束放映《电气基础与S7-1200PLC控制技术》1.日期、时间指令

日期和时间指令用于设计日历和时间计算。包括用于转换时间值数据类型的T_CONV指令、用于将Time与DTL值相加的T_ADD指令、用于将Time与DTL值相减的T_SUB指令、用于将两个DTL值的差作为Time值的T_DIFF指令。各指令功能与具体参数要求如表5-1所示。点击此处结束放映《电气基础与S7-1200PLC控制技术》

日期和时间指令用于日历和时间计算。●T_CONV将值在(日期和时间数据类型)以及(字节、字和双字大小数据类型)之间进行转换●T_ADD将Time值与DTL值相加:(Time+Time=Time)或(DTL+Time=DTL)●T_SUB将Time值与DTL值相减:(Time-Time=Time)或(DTL-Time=DTL)●T_DIFF提供两个DTL值的差作为Time值:DTL-DTL=Time●T_COMBINE将Date值和Time_and_Date值组合在一起生成DTL值有关DTL和Time数据的格式信息,请参见时间和日期数据类型部分。《电气基础与S7-1200PLC控制技术》点击此处结束放映点击此处结束放映《电气基础与S7-1200PLC控制技术》程序示例1:指令T_CONV,将DTL数据类型转换成timeofday数据类型。在DB块中定义变量:在程序中插入指令T_CONV:仿真结果:输入:DTL#2019-08-19-21:59:00输出:TOD#21:59:00点击此处结束放映《电气基础与S7-1200PLC控制技术》程序示例2:指令T_ADD,为时间(IN1)变量和时间段(IN2)变量选择数据类型。在DB块中定义变量:在程序中插入指令T_ADD:仿真结果:输入IN2:2S输入IN1:21:59:00输出IN1+IN2:21:59:02点击此处结束放映《电气基础与S7-1200PLC控制技术》2.时钟指令

时钟指令用于设置和读取CPU系统时钟,使用数据类型DTL提供日期和时间值。

●WR_SYS_T(写入系统时间):使用参数IN中的DTL值设置CPU时钟。该时间值不包括本地时区或夏令时偏移量。

●RD_SYS_T(读取系统时间):从CPU中读取当前系统时间。该时间值不包括本地时区或夏令时偏移量。

●RD_LOC_T(读取本地时间):以DTL数据类型提供CPU的当前本地时间。该时间值反映了就夏令时进行过适当调整的本地时区。

●WR_LOC_T(写入本地时间):将DTL数据类型在LOCTIME中把CPU日期和时间信息指定为本地时间。点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》程序示例3:用实时时钟指令控制路灯的定时开启和关闭,20:00开启。6:00关闭。

用RD_LOC_T读取实时时间,保存在数据类型为DTL的局部变量DT5中,其中的HOUR是小时值,其变量名为DT5.HOUR,用Q0.0来控制路灯。图5-3读取实时时间程序举例点击此处结束放映《电气基础与S7-1200PLC控制技术》3.时钟指令

时钟指令用于设置和读取CPU系统时钟,使用数据类型DTL提供日期和时间值。

●SET_TIMEZONE(设置时区):设置本地时区和夏令时参数,以用于将CPU系统时间转换为本地时间。

●RTM(运行时间计时器):指令可以设置、启动、停止和读取CPU中的运行时间小时计时器。

CPU最多可运行10个运行小时计时器来跟踪关键控制子系统的运行小时数。必须对每个定时器执行一次RTM分别启动小时计时器。CPU从运行模式切换为停止模式时,所有运行小时计时器都将停止。还可以使用RTM执行模式2停止各个的定时器。5.1.2字符串和字符指令点击此处结束放映《电气基础与S7-1200PLC控制技术》CPU支持使用String(字符串)数据类型存储一串单字节字符。String数据被存储成2个字节的标头后跟最多254个ASCII码字符组成的字符字节。第一个标头字节是初始化字符串时方括号中给出的最大长度,默认值为254。第二个标头字节是当前长度,即字符串中的有效字符数。当前长度必须小于或等于最大长度。String格式占用的存储字节数比最大长度大2个字节。在执行任何字符串指令之前,必须将String输入和输出数据初始化为存储器中的有效字符串。有效字符串的最大长度必须大于0但小于255。字符串不能分配给I或Q存储区。点击此处结束放映《电气基础与S7-1200PLC控制技术》1.移动字符串指令

移动字符串指令只有1条,用于字符串的拷贝操作。

●S_MOVE(移动字符串):将源IN字符串复制到OUT位置。S_MOVE的执行并不影响源字符串的内容。

如果输入IN中字符串的实际长度超过输出OUT存储的字符串最大长度,则会复制OUT字符串能容纳的部分IN字符串。点击此处结束放映《电气基础与S7-1200PLC控制技术》2.字符串转换指令

可以使用以下指令将数字字符串与数值之间、字符串与字符数组之间、ASCII字符串与十六进制数之间进行相互转换。

●S_CONV(字符串转换):将数字字符串转换成数值或将数值转换成数字字符串。S_CONV指令没有输出格式选项。

●STRG_VAL(字符串到值):使用格式选项,将数字字符串转换为相应的整型或浮点型表示法;FORMAT为输出格式选项(初始化选项);P指向要转换的第一个字符的索引(第一个字符=1)。

●VAL_STRG(值到字符串):使用格式选项,将整数值、无符号整数值或浮点值转换为相应的字符串表示法;SIZE为要写入OUT字符串的字符数;PREC为小数部分的精度或大小。点击此处结束放映《电气基础与S7-1200PLC控制技术》●Strg_TO_Chars(字符串到数组):将整个输入字符串Strg复制到IN_OUT参数Chars的字符数组中。该操作会从pChars参数指定的数组元素编号开始覆盖字节。●Chars_TO_Strg(数组到字符串):将字符数组的全部或一部分复制到字符串。执行Chars_TO_Strg之前必须声明输出字符串。之后Chars_TO_Strg操作会覆盖该字符串。

●ATH(ASCII到十六进制):将ASCII字符转换为压缩的十六进制数字。转换从参数IN指定的位置开始,并持续N个字节。

●HTA(十六进制到ASCII):将压缩的十六进制数字转换为相应的ASCII字符字节。转换从参数IN指定的位置开始,并持续N个字节。点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》3.字符串操作指令

字符串操作指令的主要功能是,控制程序可以使用以下字符串和字符指令为操作员显示和组程日志创建消息。

●MAX_LEN(字符串最大长度):提供了在输出OUT中分配给字符串IN的最大长度值。对于String,当前长度以字节为单位,对于WString,当前长度以字为单位。

●LEN(字符串当前长度):在输出OUT端给出字符串IN的当前长度。空字符串的长度为零。●CONCAT(连接字符串):将字符串参数IN1和IN2连接成一个字符串,并在OUT输出。连接后新字符串IN1左、IN2右。

●LEFT(左侧子串):提供由字符串参数IN的前L个字符所组成的子串。点击此处结束放映《电气基础与S7-1200PLC控制技术》

●MID(中间子串):提供字符串的中间部分。中间子串为从字符位置P(包括该位置)开始的L个字符的长度。

●RIGHT(右侧子串):提供字符串的最后L个字符。

●DELETE(删除子串):从字符串IN中删除L个字符。从字符位置P(包括该位置)处开始删除字符,剩余字串在参数OUT中输出。

●INSERT(插入子串):将字符串IN2插入字符串IN1。在位置P的字符后开始插入。

●REPLACE(替换子串):替换字符串参数IN1中的L个字符。使用字符串参数IN2中的替换字符,从字符串IN1的字符位置P(包括该位置)开始替换。

●FIND(查找子串):提供由IN2指定的子串在字符串IN1中的字符位置。从左侧开始搜索。《电气基础与S7-1200PLC控制技术》点击此处结束放映点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》5.1.3中断指令

中断指令包括附加(连接)与分离指令、循环中断指令、延时中断指令和异步事件中断指令。1.附加与分离指令附加(连接)与分离指令作用是将中断事件与中断服务子程序进行关联或分离,应用于中断响应过程。

●ATTACH(附加):启用响应硬件中断事件的中断OB子程序执行。

●DETACH(分离):禁用响应硬件中断事件的中断OB子程序执行。点击此处结束放映《电气基础与S7-1200PLC控制技术》2.循环中断指令

循环中断指令包括设置循环中断参数指令和查询循环中断参数指令2条。

●SET_CINT(设置循环中断):设置特定的中断OB以开始循环中断程序扫描过程。

●QRY_CINT(查询循环中断):获取循环中断OB的参数和执行状态。返回的值早在执行QRY_CINT时便已存在。点击此处结束放映《电气基础与S7-1200PLC控制技术》程序示例:解释SET_CINT(设置循环中断)指令中CYCLE参数分别为100μs和0μs时,指令执行结果有何不同?解释参数PHASE的含义并通具体应用举例说明?

(1)如果CYCLE时间=100μs,则由OB_NR引用的中断OB将每隔100μs中断一次循环程序扫描。中断OB在执行后会将执行控制交回程序扫描过程,从而继续从中断位置开始扫描。如果CYCLE时间=0μs,则中断事件被禁用,并且不会执行中断OB。

(2)PHASE(相移)时间是CYCLE时间间隔开始前的指定延迟时间。点击此处结束放映《电气基础与S7-1200PLC控制技术》

举例说明:如果以相同的时间间隔调用优先级较高和优先级较低的OB,则只有在优先级较高的OB完成处理后才会调用优先级较低的OB。低优先级OB的执行起始时间会根据优先级较高的OB的处理时间来延迟。如图(a)所示,PHASE=0。如果希望以固定的时间周期来执行优先级较低的OB,则相移时间应大于优先级较高的OB的处理时间。如图(b)所示,PHASE≠0。(a)没有相位移的OB调用(b)有相位移的OB调用点击此处结束放映《电气基础与S7-1200PLC控制技术》3.时钟中断指令

CPU在默认情况下禁用此功能,必须组态此功能才能实现远程控制CPU系统时间修正。

●SET_CINT(设置循环中断):设置日期和时钟中断。程序中断OB可以设置为执行一次,或者在分配的时间段内多次执行。

●CAN_TINT(取消日期和时钟中断):为指定的中断OB取消起始日期和时钟中断事件。

●ACT_TINT(激活日期和时钟中断):为指定的中断OB激活起始日期和时钟中断事件。

●QRY_TINT(查询日期和时钟中断):为指定的中断OB查询日期和时钟中断状态。点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》4.延时中断指令

可使用SRT_DINT和CAN_DINT指令启动和取消延时中断处理过程,或使用QRY_DINT指令查询中断状态。每个延时中断都是一个在指定的延迟时间过后发生的一次性事件。如果在延迟时间到期前取消延时事件,则不会发生程序中断。

●SRT_DINT(启动延时中断):在参数DTIME指定的延迟过后执行OB。

●CAN_DINT(取消已启动的延时中断):在这种情况下,将不执行延时中断OB。

●QRY_DINT(查询):查询通过OB_NR参数指定的延时中断的状态。点击此处结束放映《电气基础与S7-1200PLC控制技术》点击此处结束放映《电气基础与S7-1200PLC控制技术》5.异步事件中断指令

使用DIS_AIRT和EN_AIRT指令可禁用和启用报警中断处理过程。

●DIS_AIRT(取消已启动的异步事件中断):可延迟新中断事件的处理。可在OB中多次执行DIS_AIRT。●EN_AIRT(启动异步事件中断):对先前使用DIS_AIRT指令禁用的中断事件处理,可使用EN_AIRT来启用。每一次DIS_AIRT执行都必须通过一次EN_AIRT执行来取消。必须在同一个OB中或从同一个OB调用的任意FC或FB中完成EN_AIRT执行后,才能再次启用此OB的中断。《电气基础与S7-1200PLC控制技术》点击此处结束放映示例:

运用循环中断,使Q0.0端口实现500ms输出为1、500ms输出为0的循环输出,即实现周期为1s、占空比50%的方波输出。循环中断过程说明:循环中断OB在经过一段固定的时间间隔后执行相应的中断OB中的程序。S7-1200最多支持4个循环中断OB,在创建循环中断OB时设定固定的间隔扫描时间。在CPU运行期间,可以使用“SET_CINT”指令重新设置循环中断的间隔扫描时间、相移时间;同时还可以使用“QRY_CINT”指令查询循环中断的状态。循环中断OB的编号必须为30~38,或大于、等于123。《电气基础与S7-1200PLC控制技术》点击此处结束放映

PLC启动后开始计时;当到达固定的时间间隔后,操作系统将启动相应的循环中断OB30。循环中断OB30优先于循环OB1执行,循环中断的执行过程如图5-4所示。图5-4循环中断OB执行图例《电气基础与S7-1200PLC控制技术》点击此处结束放映具体实施过程如下:

(1)按如下步骤创建循环中断OB30。如图5-5所示。图5-5创建循环中断OB3《电气基础与S7-1200PLC控制技术》点击此处结束放映(2)OB30中编程如图5-6所示,当循环中断执行时,Q0.0以方波形式输出。图5-6

OB30中的编程《电气基础与S7-1200PLC控制技术》点击此处结束放映

(3)在OB1中编程调用“SET_CINT”指令,可以重新设置循环中断时间,例如:CYCLE=1s(即周期为2s);调用“QRY_CINT”指令可以查询中断状态。在“指令->扩展指令->中断->循环中断”中可以找相关指令,如图5-7所示。在OB1中的编程如图5-8所示。

“SET_CINT”指令参数说明如下:EN:=%M100.0//当EN上升沿时,设置新参数OB_NR:=30//需要设置的OB的编号CYCLE:=1000000//时间间隔(微秒)PHASE:=0//相移时间(微秒)RET_VAL:=%MW0//状态返回值(详细信息请查看在线帮助)《电气基础与S7-1200PLC控制技术》点击此处结束放映图5-8

OB1中的编程《电气基础与S7-1200PLC控制技术》点击此处结束放映(4)测试结果:程序下载后,可看到CPU的输出Q0.0指示灯0.5s亮,0.5s灭交替切换;当M100.0由0变1时,通过“SET_CINT”将循环间隔时间设置为1s,这时,可看到CPU的输出Q0.0指示灯1s亮,1s灭交替切换。

“QRY_CINT”指令参数说明如下:OB_NR:=30//需要查询的OB的编号RET_VAL:=%MW2 //状态返回值(详细信息请查看在线帮助)CYCLE:=%MD4//查询结果:时间间隔(微秒)PHASE:=%MD8//查询结果:相移时间(微秒)STATUS:=%MW12//循环中断的状态(详细信息请查看在线帮助)点击此处结束放映《电气基础与S7-1200PLC控制技术》

脉冲指令将参数信息存储在DB中。数据块参数不是由用户单独更改的,而是由脉冲指令进行控制。通过将其变量名称用于PWM参数,指定要使用的已启用脉冲发生器。EN输入为TRUE时,PWM_CTRL指令根据ENABLE输入的值启动或停止所标识的PWM。脉冲宽度由相关Q字输出地址中的值指定。在设备组态期间分配脉冲宽度调制(PWM)和脉冲串输出(PTO)设备使用的数字量I/O点。将数字I/O点分配给这些设备之后,无法通过监视表格强制功能修改所分配的I/O点的地址值。5.1.4脉冲指令点击此处结束放映《电气基础与S7-1200PLC控制技术》

●CTRL_PWM(脉宽调制):提供占空比可变的固定循环时间输出。PWM输出以指定频率(循环时间)启动之后将连续运行。脉冲宽度会根据需要进行变化以影响所需的控制。

CPU第一次进入RUN模式时,脉冲宽度将设置为在设备组态中组态的初始值。根据需要将值写入设备组态中指定的Q字位置(“输出地址”/“起始地址:”),以更改脉冲宽度。使用指令(如移动、转换、数学)或PID功能框将所需脉冲宽度写入相应的Q字。必须使用Q字值的有效范围(百分数、千分数、万分数或S7模拟格式)。点击此处结束放映《电气基础与S7-1200PLC控制技术》数据块控制指令包括READ_DBL(读取装载存储器中的数据块)和WRIT_DBL(写入装载存储器中的数据块)两条指令。通常,DB存储在装载存储器(闪存)和工作存储器(RAM)中。起始值(初始值)始终存储在装载存储器中,当前值始终存储在工作存储器中。READ_DBL可用于将一组起始值从装载存储器复制到工作存储器中程序引用的DB的当前值。可使用WRIT_DBL将存储在内部装载存储器或存储卡中的起始值更新为工作存储器中的当前值。5.1.5数据块控制指令点击此处结束放映《电气基础与S7-1200PLC控制技术》

●READ_DBL(读取):将DB的全部或部分起始值从装载存储器复制到工作存储器的目标DB中。在复制期间,装载存储器的内容不变。

●WRIT_DBL(写入):将DB全部当前值或部分值从工作存储器复制到装载存储器的目标DB中。在复制期间,工作存储器的内容不变。点击此处结束放映《电气基础与S7-1200PLC控制技术》配方通常有两种使用场景,一种是生产不同的产品,使用不同的工艺参数,一种是在生产一种产品过程中有很多步骤,每个步骤都是有不同的参数。通常这些参数数据存放在CPU工作存储器的DB块或M区,但是很多时候这些数据的数据量特别大,数值却是固定不变的,或者只是偶尔在需要的时候小做改动。而对于S7-1200来说,工作存储器最大也只有150kB(S7-1217C),所以可以考虑将这些数据,放入更大的装载存储器。对于S7-1200,内置装载存储器有1MB、2MB和4MB三种,如果通过存储卡扩展,理论上可以最多到32GB。5.1.6配方和数据日志指令点击此处结束放映《电气基础与S7-1200PLC控制技术》SIMATICS7-1200系列CPU使用配方数据功能,需要在以下4个方面加以注意。1.配方数据存储(1)程序中创建一个配方数据块,此DB块必须存储在CPU装载存储器中,可以使用CPU内部装载存储器或程序卡。(2)程序中创建一个活动配方数据块,此DB块必须在CPU工作存储器中,使用程序逻辑读取或写入一个活动配方记录。2.配方数据管理配方数据块使用一个产品配方记录数组。数组的每个元素代表一种不同的配方形式,各个配方以一组共同的成分为基础。(1)创建PLC数据类型或结构,以定义一个配方记录中的所有成分。此数据类型模板重复使用于所有配方记录。根据分配给配方成分的起始值而产生不同的产品配方。点击此处结束放映《电气基础与S7-1200PLC控制技术》

(2)使用READ_DBL指令,可以随时将配方从配方数据块(装载存储器中的所有配方)传送到活动配方数据块(工作存储器中的一个配方)。配方记录移动到工作存储器后,程序逻辑便可读取成分值并开始生产运行。此过程将配方数据需要的CPU工作存储器使用量降到最低。(3)如果在生产运行期间使用HMI设备调整活动配方成分值,可以使用WRIT_DBL指令将修改的值写入配方数据块。3.配方导出(从配方数据块到CSV文件)可以使用RecipeExport指令将完整的配方记录集生成为一个CSV文件。未使用的配方记录也被导出。点击此处结束放映《电气基础与S7-1200PLC控制技术》4.配方导入(从CSV文件到配方数据块)完成配方导出操作后,即可将生成的CSV文件用作数据结构模板。(1)使用CPUweb服务器中的文件浏览器页面将现有配方CSV文件从CPU下载到PC.(2)使用ASCII文本编辑器修改配方CSV。可以修改分配给成分的起始值,但不能修改数据类型或数据结构。(3)将修改的CSV文件从PC再次上传到CPU。但是,在CPUWeb服务器允许上传操作之前,必须删除或重命名CPU装载存储器中的旧CSV文件(具有相同名称)。(4)将修改的CSV文件上传到CPU后,便可以使用RecipeImport指令将新的起始值从修改的CSV文件(在CPU装载存储器中)传送到配方数据块(在CPU装载存储器中)。点击此处结束放映《电气基础与S7-1200PLC控制技术》5.1.7处理地址指令1.GEO2LOG(根据插槽确定硬件标识符)指令使用GEO2LOG指令根据插槽信息确定硬件标识符。

●GEO2LOG(根据插槽确定硬件标识符):指令根据您使用GEOADDR系统数据类型定义的插槽信息来确定硬件标识符。

指令根据在HWTYPE参数处定义的硬件的类型(取值1~5),可通过GEOADDR参数评估相关信息。点击此处结束放映《电气基础与S7-1200PLC控制技术》2.2.LOG2GEO(根据硬件标识符确定插槽)指令使用LOG2GEO指令从逻辑地址中确定属于硬件标识符的地理地址(模块插槽)。

●LOG2GEO(根据硬件标识符确定插槽):指令根据硬件标识符来确定逻辑地址的地理地址。

指令使用LADDR参数根据硬件标识符选择逻辑地址,GEOADDR中包含LADDR输入所给定的逻辑地址的地理地址。点击此处结束放映《电气基础与S7-1200PLC控制技术》3.IO2MOD(根据I/O地址确定硬件标识符)指令使用IO2MOD指令根据(子)模块的I/O地址确定该模块的硬件标识符。

●IO2MOD(根据I/O地址确定硬件标识符):指令根据(子)模块的I/O地址(I、Q、PI、PQ)确定该模块的硬件标识符。

在ADDR参数中输入IO地址。如果在此参数中使用了一系列IO地址,仅通过评估第一个地址来确定硬件标识符。如果正确指定了第一个地址,则在ADDR处指定的地址长度没有任何意义。如果使用了包含多个模块或未使用地址的地址区域,则还可以确定第一个模块的硬件标识符。点击此处结束放映《电气基础与S7-1200PLC控制技术》4.RD_ADDR(根据硬件标识符确定IO地址)指令使用RD_ADDR指令获取子模块的I/O地址。

●RD_ADDR(根据硬件标识符确定IO地址):指令获取子模块的I/O地址。

RD_ADDR指令根据子模块的硬件标识符确定输入或输出的长度和起始地址。点击此处结束放映《电气基础与S7-1200PLC控制技术》5.GEOADDR系统数据类型系统数据类型GEOADDR包含模块地理地址(或插槽信息)。(1)PROFINETIO的地理地址:对于PROFINETIO,地理地址由PROFINETIO系统ID、设备号、插槽号和子模块(如果使用子模块)组成。(2)PROFIBUSDP的地理地址:对于PROFIBUSDP,地理地址由DP主站系统的ID、站号和插槽号组成。可在每个模块的硬件配置中找到模块的插槽信息。点击此处结束放映《电气基础与S7-1200PLC控制技术》扩展指令说明中介绍了各程序指令可能发生的运行错误。除了这些错误,还可能发生下列常见错误,如表5-18。如果执行代码块时发生某个常见错误,则CPU将进入STOP模式,除非在该代码块中使用GetError或GetErrorID指令编写程序来响应错误。5.1.8“扩展”指令的常见错误代码条件代码值(W#16#....)说明8x22

存储区对于输入太小8x23存储区对于输出太小8x24输入区非法8x25输出区非法8x28

输入位赋值非法8x29输出位赋值非法8x30输出区是只读DB8x3ADB不存在表5-18扩展指令的常见错误代码

工艺指令5.2《电气基础与S7-1200PLC控制技术》点击此处结束放映点击此处结束放映《电气基础与S7-1200PLC控制技术》5.2.1高速计数器指令1.CTRL_HSC(控制高速计数器)指令

用于高速计数器的参数配置。指令添加一个新的DB命名为DBHSCretain,并且创建一个DINT数据元素,命名为HSC_?(如HSC_1)用于保存高速计数器的值。只要在硬件配置里使能并组态了高速计数器,不编写本指令,高速计数器就可以正常计数。CTRL_HSC只是完成参数写入。

工艺指令是数控机床控制软件里的名词,相似于操作指令,只不过在控制软件编程中,由程序来完成工艺程序,某些控制加工部件运行的程序就是工艺指令。S7-1200有多种工艺指令,如高速计数器指令、PID控制指令、运动控制指令等。点击此处结束放映《电气基础与S7-1200PLC控制技术》

●CTRL_HSC(控制高速计数器):指令用于高速计数器的参数配置。每个CTRL_HSC指令都使用DB中存储的结构来保存计数器数据。在编辑器中放置CTRL_HSC指令后分配DB。

在CTRL_HSC参数中没有提供当前计数值。在高速计数器硬件的组态期间分配存储当前计数值的过程映像地址。可以使用程序逻辑直接读取计数值。返回给程序的值将是读取计数器瞬间的正确计数。但计数器仍将继续对高速事件计数。因此,程序使用旧的计数值完成处理前,实际计数值可能会更改。点击此处结束放映《电气基础与S7-1200PLC控制技术》2.CTRL_HSC_EXT(控制高速计数器(扩展))指令指令

利用CTRL_HSC_EXT指令,程序可以按指定时间周期访问指定高速计数器的输入脉冲数量。该指令使得程序可以以纳米级精度确定输入脉冲之间的时间长度。要使用CTRL_HSC_EXT指令,请按下列步骤操作:

●CTRL_HSC_EXT(控制高速计数器(扩展)):指令按指定时间周期访问指定高速计数器的输入脉冲数量。

(1)为Period模式组态相关的高速计数器选择所需要的运行阶段。如果选择内部方向控制,则可以释放用于其它用途的方向输入。(2)将CTRL_HSC_EXT拖放至梯形图程序中,该操作会同时创建一个背景数据块CTRL_HSC_EXT_DB。点击此处结束放映《电气基础与S7-1200PLC控制技术》

(3)创建一个UserGlobal_DB=ex:"MYDB"(CTRL_HSC_EXT的输入参数)。该数据块含有该SFB所需要的信息。(4)在MYDB中,找到一个空行,并添加变量Name=Ex:"Myperiod"。(5)输入"HSC_Period"<回车键>以添加数据类型(下拉控件目前没有该选项)。必须由用户正确地输入该名称(如图所示)。(6)检查"MyPeriod"变量现在是否是一个可以扩展的通信数据结构。(7)在梯形图指令CTRL_HSC_EXT:"CTRL"控点上附加背景数据块变量"MYDB".MyPeriod。《电气基础与S7-1200PLC控制技术》点击此处结束放映应用举例:设在旋转机械上有单相增量编码器作为反馈,接入到S7-1200CPU,要求在计数25个脉冲时,计数器复位,置位M10.5,并设定新预置值为50个脉冲,当计满50个脉冲后复位M10.5,并将预置值再设为25,周而复始执行此功能。针对此应用,选择CPU1214C,高速计数器为:HSC1。模式为:单相计数,内部方向控制,无外部复位。据此,脉冲输入应接入I0.0,使用HSC1的预置值中断(CV=RV)功能实现此应用。先在设备与组态中,选择CPU,单击属性,激活高速计数器,并设置相关参数。此步骤必须事先执行,1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤。添加硬件中断块,关联相对应的高速计数器所产生的预置值中断,在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数。将程序下载,执行功能。《电气基础与S7-1200PLC控制技术》点击此处结束放映(1)添加硬件中断,在组织块中添加硬件中断,如图5-9所示。图5-9添加硬件中断《电气基础与S7-1200PLC控制技术》点击此处结束放映(2)硬件组态。如图5-10所示,选中CPU,可右键打开属性(也可以在“编辑”中选择属性打开);常规项中点击启用高速计数器HSC1,如图5-11所示;功能项中选择“计数类型:计数”、“工作模式:单向”、“计数方向取决于:用户程序(内部方向控制)”、“初始计数方向:增计数”,如图5-12所示;复位为初始值项中选择“初始计数器值:0”、“初始参考值:25”,如图5-13所示;事件组态项中激活“为计数器值等于参考值这一事件生产中断”,选择“事件名称:预制直”、“硬件中断:Hardwareinterrupt”、“优先级:18”,如图5-14所示;硬件输入项中选择“时钟发生器输入:%I0.0”,如图5-15所示;地址输入项中选择“启示地址:1000”、“结束地址1003”,如图5-16所示《电气基础与S7-1200PLC控制技术》点击此处结束放映图5-10

添加硬件中断图5-11

启用高速计数器HSC1《电气基础与S7-1200PLC控制技术》点击此处结束放映图5-12功能设置图5-13置值与复位《电气基础与S7-1200PLC控制技术》点击此处结束放映图5-15硬件输入图5-14事件组态《电气基础与S7-1200PLC控制技术》点击此处结束放映

(3)程序编写。HSC是高速计数器硬件识别号,这里填1;CV为使能更新初值,取1;RV为使能更新预置值,取1;NEW_CV新的初始值,取0;NEW_RV新的预置值。

将完成的组态与程序下载到CPU后即可执行,当前的计数值可在ID1000中读出,关于高速计数器指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。程序如图5-17所示。图5-16地址输入《电气基础与S7-1200PLC控制技术》点击此处结束放映图5-17

高数计数器应用示例点击此处结束放映《电气基础与S7-1200PLC控制技术》5.2.2PID指令

只有CPU从STOP切换到RUN模式后,在RUN模式下对PID组态和下载进行的更改才会生效。而在“PID参数”(PIDparameters)对话框中使用“起始值控制”(Startvaluecontrol)进行的更改立即生效。

STEP7为S7-1200CPU提供三个PID指令:

●PID_Compact指令:用于通过连续输入变量和输出变量控制工艺过程。

●PID_3Step指令:用于控制电机驱动的设备,如需要通过离散信号实现打开和关闭动作的阀门。

●PID_Temp指令提供一个通用的PID控制器,可用于处理温度控制的特定需求。点击此处结束放映《电气基础与S7-1200PLC控制技术》

全部三个PID指令(PID_Compact、PID_3Step和PID_Temp)都可以计算启动期间的P分量、I分量以及D分量(如果组态为“预调节”)。还可以将指令组态为“精确调节”,从而可对参数进行优化。用户无需手动确定参数(有关指令的信息,可参见TIA门户的在线帮助)。以恒定的采样时间间隔执行PID指令(最好在循环OB中)。由于PID回路需要一段时间来响应控制值的变化,因此请勿在每个循环中都计算输出值。请勿在主程序循环OB(如OB1)中执行PID指令。PID算法的采样时间表示两次输出值(控制值)计算之间的时间。在自调节期间计算输出值,并取整为循环时间的倍数。每次调用时都会执行PID指令的所有其它函数。点击此处结束放映《电气基础与S7-1200PLC控制技术》PID控制器使用(1)式来计算PID_Compact指令的输出值,使用(2)式来计算PID_3Step指令的输出值。

(1)(2)点击此处结束放映《电气基础与S7-1200PLC控制技术》应用举例:恒温控制装置由1200PLC一台,模拟量输入模块SM1231(PLC自带的输入通道不支持4-20mA电流输入)一个,温度传感器PT100一个,以及温度变送器、热得快、固态继电器等组成,利用PID控制指令实现对温度的调节控制。具体实过程骤如下:(1)新建S7-1200项目工程,添加PLC和模拟量输入模块。修改模块的模拟量输入类型为4-20mA、激活启用益处诊断,设置模拟量模块的IO地址为96-103(8个字),如图5-18、图5-19所示。点击此处结束放映《电气基础与S7-1200PLC控制技术》图5-18修改模块的模拟量输入类型图5-19设置模拟量模块IO地址点击此处结束放映《电气基础与S7-1200PLC控制技术》(2)新建循环组织块OB30,循环时间选择默认值100ms,如图5-20所示。图5-20

新建循环组织块OB30点击此处结束放映《电气基础与S7-1200PLC控制技术》(3)在循环组织块中调用Compact-PID指令,会自动生成对应的工艺对象,对工艺对象进行组态。组态包括:基本设置项目,如图5-21所示;过程值设置项目,如图5-22、5-23所示;高级设置项目,如图5-24、5-25、5-26、5-27所示。图5-21调用Compact-PID指令

点击此处结束放映《电气基础与S7-1200PLC控制技术》图5-22

过程值限值设置图5-23

过程值标定设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论