S7-1200 PLC编程及应用第三版_廖常初_课件_第3章PPT学习教案_第1页
S7-1200 PLC编程及应用第三版_廖常初_课件_第3章PPT学习教案_第2页
S7-1200 PLC编程及应用第三版_廖常初_课件_第3章PPT学习教案_第3页
S7-1200 PLC编程及应用第三版_廖常初_课件_第3章PPT学习教案_第4页
S7-1200 PLC编程及应用第三版_廖常初_课件_第3章PPT学习教案_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1 S7-1200 PLC编程及应用第三版编程及应用第三版_廖常初廖常初 _课件课件_第第3章章PPT课件课件 4置位、复位输出指令置位、复位输出指令 S(置位输出)、R(复位输出)指令将指定的位操作数置位和复位。 如果同一操作数的S线圈和R线圈同时断电,指定操作数的信号状态不变。 置位输出指令与复位输出指令最主要的特点是有记忆和保持功能。如果I0.4 的常开触点闭合,Q0.5变为1状态并保持该状态。即使I0.4的常开触点断开, Q0.5也仍然保持1状态。在程序状态中,用Q0.5的S和R线圈连续的绿色圆弧和 绿色的字母表示Q0.5为1状态,用间断的蓝色圆弧和蓝色的字母表示0状态。 第1页

2、/共59页 5置位位域指令与复位位域指令置位位域指令与复位位域指令 “置位位域”指令SET_BF将指定的地址开始的连续的若干个位地址置位, “复位位域”指令RESET_BF将指定的地址开始的连续的若干个位地址复位。 7扫描操作数信号边沿的指令扫描操作数信号边沿的指令 中间有P的触点的名称为“扫描操作数的信号上升沿”,在I0.6的上升沿, 该触点接通一个扫描周期。M4.3为边沿存储位,用来存储上一次扫描循环时 I0.6的状态。通过比较I0.6前后两次循环的状态,来检测信号的边沿。边沿存 储位的地址只能在程序中使用一次。不能用代码块的临时局部数据或I/O变量 来作边沿存储位。 中间有N的触点的名称

3、为“扫描操作数的信号下降沿”,在M4.4的下降沿, RESET_BF的线圈“通电”一个扫描周期。该触点下面的M4.5为边沿存储位。 第2页/共59页 6置位置位/复位触发器与复位复位触发器与复位/置位触发器置位触发器 SR方框是置位/复位(复位优先)触发器,在置位(S)和复位(R1)信号 同时为1时,方框上的输出位M7.2被复位为0。可选的输出Q反映了M7.2的状 态。 RS方框是复位/置位(置位优先)触发器,在置位(S1)和复位(R)信号 同时为1时,方框上的M7.6为置位为1。可选的输出Q反映了M7.6的状态。 第3页/共59页 8在信号边沿置位操作数的指令在信号边沿置位操作数的指令 中间

4、有P的线圈是“在信号上升沿置位操作数”指令,仅在流进该线圈的能 流的上升沿,该指令的输出位M6.1为1状态。其他情况下M6.1均为0状态, M6.2为保存P线圈输入端的RLO的边沿存储位。 中间有N的线圈是“在信号下降沿置位操作数”指令,仅在流进该线圈的能 流的下降沿,该指令的输出位M6.3为1状态。其他情况下M6.3均为0状态, M6.4为边沿存储位。 上述两条线圈格式的指令对能流是畅通无阻的,这两条指令可以放置在程 序段的中间或最右边。在运行时改变I0.7的状态,可以使M6.6置位和复位。 第4页/共59页 9扫描扫描RLO的信号边沿指令的信号边沿指令 在流进“扫描RLO的信号上升沿”指令

5、(P_TRIG指令)的CLK输入端的能 流(即RLO)的上升沿,Q端输出脉冲宽度为一个扫描周期的能流,方框下面 的M8.0是脉冲存储位。 在流进“扫描RLO的信号下降沿”指令(N_TRIG指令)的CLK输入端的能 流的下降沿,Q端输出一个扫描周期的能流。方框下面的M8.2是脉冲存储器 位。P_TRIG 指令与N_TRIG 指令不能放在电路的开始处和结束处。 第5页/共59页 10检测信号边沿指令检测信号边沿指令 R_TRIG是“检测信号上升沿”指令,F_TRIG是“检测信号下降沿”指令。 它们是函数块,在调用时应为它们指定背景数据块。这两条指令将输入CLK 的当前状态与背景数据块中的边沿存储位

6、保存的上一个扫描周期的CLK的状 态进行比较。如果指令检测到CLK的上升沿或下降沿,将会通过Q端输出一个 扫描周期的脉冲。 在输入CLK输入端的电路时,选中左侧的垂直“电源”线,双击收藏夹中 的“打开分支”按钮,生成一个串联电路。用鼠标将串联电路右端的双箭头 拖拽到CLK端。松开鼠标左键,串联电路被连接到CLK端。 第6页/共59页 11边沿检测指令的比较边沿检测指令的比较 以上升沿检测为例,P触点用于检测触点上面的地址的上升沿,并且直接输 出上升沿脉冲。其他3种指令都是用来检测RLO(流入它们的能流)的上升沿。 P线圈用于检测能流的上升沿,并用线圈上面的地址来输出上升沿脉冲。其 他3种指令都

7、是直接输出检测结果。 R_TRIG指令与P_TRIG指令都是用于检测流入它们的CLK端的能流的上升 沿,并直接输出检测结果。其区别在于R_TRIG指令用背景数据块保存上一次 扫描循环CLK端信号的状态,而P_TRIG指令用边沿存储位来保存它。 第7页/共59页 12故障显示电路故障显示电路 【例3-1】 设计故障信息显示电路,从故障信号I0.0的上升沿开始,Q0.7控 制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消 失,则指示灯熄灭。如果没有消失,则指示灯转为常亮,直至故障消失。 设置MB0为时钟存储器字节,M0.5提供周期为1s的时钟脉冲。出现故障时, 将I0.0

8、提供的故障信号用M2.1锁存起来,M2.1和M0.5的常开触点组成的串联 电路使Q0.7控制的指示灯以1Hz的频率闪烁。按下复位按钮I0.1,故障锁存标 志M2.1被复位为0状态。如果故障已经消失,指示灯熄灭。如果没有消失, M2.1的常闭触点与I0.0的常开触点组成的串联电路使指示灯转为常亮,直至 I0.0变为0状态,故障消失,指示灯熄灭。 第8页/共59页 3.2 定时器与计数器指令定时器与计数器指令 3.2.1 定时器指令定时器指令 1脉冲定时器脉冲定时器 将指令列表中的“生成脉冲”指令TP拖放到梯形图中,在出现的“调用选 项”对话框中,将默认的背景数据块的名称改为T1,可以用它来做定时

9、器的 标示符。单击“确定”按钮,自动生成背景数据块。 定时器的输入IN为启动 输入端,PT为预设时间值,ET为定时开始后经过的当前时间值,它们的数据 类型为32位的Time,单位为ms,最大定时时间为24天多。Q为定时器的位输 出,各参数均可以使用I(仅用于输入参数)、Q、M、D、L存储区,PT可以 使用常量。定时器指令可以放在程序段的中间或结束处。 第9页/共59页 脉冲定时器用于将输出Q置位为PT预设的一段时间。在IN输入信号的上升 沿启动该指令,Q输出变为1状态,开始输出脉冲,ET从0ms开始不断增大, 达到PT预设的时间时,Q输出变为0状态。如果IN输入信号为1状态,则当前 时间值保持

10、不变(见波形A)。如果IN输入信号为0状态,则当前时间变为0s (见波形B)。IN输入的脉冲宽度可以小于预设值,在脉冲输出期间,即使 IN输入出现下降沿和上升沿,也不会影响脉冲的输出。 I0.1为1时,定时器复位线圈RT通电,定时器T1被复位。如果正在定时,且 IN输入信号为0状态,将使当前时间值ET清零,Q输出也变为0状态(见波形 C)。如果此时正在定时,且IN输入信号为1状态,将使当前时间清零,但是 Q输出保持为1状态(见波形D)。复位信号I0.1变为0状态时,如果IN输入信 号为1状态,将重新开始定时(见波形E)。 第10页/共59页 2接通延时定时器接通延时定时器 接通延时定时器TON

11、用于将Q输出的置位操作延时PT指定的一段时间。在 IN输入的上升沿开始定时。ET大于等于PT指定的设定值时,输出Q变为1状 态,ET保持不变(见波形A)。 IN输入电路断开时,或定时器复位线圈RT通电,定时器被复位,当前时间 被清零,输出Q变为0状态。如果IN输入信号在未达到PT设定的时间时变为0 状态(见波形B),输出Q保持0状态不变。 复位输入I0.3变为0状态时,如果IN输入信号为1状态,将开始重新定时 (见波形D)。 第11页/共59页 3关断延时定时器指令关断延时定时器指令 关断延时定时器(TOF)用于将Q输出的复位操作延时PT指定的一段时间。 IN输入电路接通时,输出Q为1状态,当

12、前时间被清零。在IN的下降沿开始定 时,ET从0逐渐增大。ET等于预设值时,输出Q变为0状态,当前时间保持不 变,直到IN输入电路接通(见波形A)。关断延时定时器可以用于设备停机 后的延时。 如果ET未达到PT预设的值,IN输入信号就变为1状态,ET被清0,输出Q 保持1状态不变(见波形B)。复位线圈RT通电时,如果IN输入信号为0状态, 则定时器被复位,当前时间被清零,输出Q变为0状态(见波形C)。如果复 位时IN输入信号为1状态,则复位信号不起作用(见波形D)。 第12页/共59页 4时间累加器时间累加器 时间累加器TONR的IN输入电路接通时开始定时(见波形A和B)。输入电 路断开时,累

13、计的当前时间值保持不变。可以用TONR来累计输入电路接通 的若干个时间段。图3-21中的累计时间t1+t2等于预设值PT时,Q输出变为1状 态(见波形D)。 复位输入R为1状态时(见波形C),TONR被复位,它的ET变为0,输出Q 变为0状态。 “加载持续时间”线圈PT通电时,将PT线圈指定的时间预设值写入TONR 定时器的背景数据块的静态变量PT(”T4”.PT),将它作为TONR的输入参数 PT的实参。用I0.7复位TONR时,”T4”.PT也被清0。 第13页/共59页 【例3-2】 用接通延时定时器设计周期和占空比可调的振荡电路。 图3-22中的串联电路接通后,定时器T5的IN输入信号

14、为1状态,开始定时。 2s后定时时间到,它的Q输出使定时器T6开始定时,同时Q0.7的线圈通电。 3s后T6的定时时间到,它的输出“T6”.Q的常闭触点断开,使T5的IN输入电 路断开,其Q输出变为0状态,使Q0.7和定时器T6的Q输出也变为0状态。下一 个扫描周期因为“T6”.Q的常闭触点接通,T5又从预设值开始定时。Q0.7的 线圈将这样周期性地通电和断电,直到串联电路断开。Q0.7线圈通电和断电 的时间分别等于T6和T5的预设值。 第14页/共59页 【例3-3】 用3种定时器设计卫生间冲水控制电路。I0.7是光电开关检测到的 有使用者的信号,用Q1.0控制冲水电磁阀。 从I0.7(有人

15、使用)的上升沿开始,TON延时3s后其输出Q变为1状态,使 TP的Q输出“T8”.Q输出一个宽度为4s的脉冲。从I0.7的上升沿开始,TOF的 Q输出“T9”.Q变为1状态。在I0.7的下降沿,TOF开始定时,5s后“T9”.Q 变为0状态。“T9”.Q的波形减去I0.7的波形得到宽度为5s的脉冲波形,用 “T9”.Q的常开触点与I0.7的常闭触点串联的电路来实现上述要求。两块脉 冲波形的叠加用并联电路来实现。“T7”.Q的常开触点用于防止3s内有人进 入和离开时冲水。 第15页/共59页 5用数据类型为用数据类型为IEC_TIMER的变量的变量提供背景数据提供背景数据 图3-23和图3-24

16、中的程序的控制要求完全相同。图3-24中的定时器用数据块 “定时器DB”中数据类型为IEC_TIMER的变量提供背景数据。 单击TON方框上面的问号 ,再单击出现的小方框右边的 按钮,单击出现 的地址列表中的“定时器DB”,地址域出现“定时器DB.”。单击地址列 表中的“T1”,地址域出现“定时器DB.T1.”。单击地址列表中的“无”, 指令列表消失,地址域出现“定时器DB”.T1。用同样的方法为TP和TOF提 供背景数据。用类似的方法生成地址“定时器DB”.T3.Q。 第16页/共59页 6定时器线圈指令定时器线圈指令 两条运输带顺序相连,按下起动按钮I0.3,1号运输带开始运行,8s后2号

17、运 输带自动起动。按了停止按钮I0.2,先停2号运输带,8s后停1号运输带。 在运输带控制程序中设置了一个用起动、停止按钮控制的M2.3,用它来控 制TON的IN输入端和TOF线圈。 第17页/共59页 中间标有TOF的线圈上面是定时器的背景数据块,下面是时间预设值PT。 TOF线圈和TOF方框定时器指令的功能相同。 TON的Q输出端控制的Q0.6在I0.3的上升沿之后8s变为1状态,在M2.3的下 降沿时变为0状态。所以可以用TON的Q输出端直接控制2号运输带Q0.6。T11 是DB11的符号地址。按下起动按钮I0.3,TOF线圈通电。它的Q输出 “T11”.Q在它的线圈通电时变为1状态,在

18、它的线圈断电后延时8s变为0状态, 因此可以用“T11”.Q的常开触点控制1号运输带Q1.1。 第18页/共59页 3.2.2 计数器指令计数器指令 1计数器的数据类型计数器的数据类型 S7-1200的计数器属于函数块,调用时需要生成背景数据块。单击指令助 记符下面的问号,用下拉式列表选择某种整数数据类型。 CU和CD分别是加计数输入和减计数输入,在CU或CD信号的上升沿,当 前计数器值CV被加1或减1。PV为预设计数值,CV为当前计数器值,R为复 位输入,Q为布尔输出。 2加计数器加计数器 当接在R输入端的I1.1为0状态,在CU信号的上升沿,CV加1,直到达到指 定的数据类型的上限值用,C

19、V的值不再增加。 CV大于等于PV时,输出Q为1状态,反之为0状态。第一次执行指令时, CV被清零。各类计数器的复位输入R为1状态时,计数器被复位,输出Q变为 0状态,CV被清零。 第19页/共59页 3减计数器减计数器 减计数器的装载输入LD为1状态时,输 出Q被复位为0,并把PV的值装入CV。 在减计数输入CD的上升沿,CV减1,直 到CV达到指定的数据类型的下限值。此 后CV的值不再减小。 CV小于等于0时,输出Q为1状态,反 之Q为0状态。第一次执行指令时,CV被 清零。 第20页/共59页 4加减计数器加减计数器 在CU的上升沿,CV加1, CV达到指定 的数据类型的上限值时不再增加

20、。 在CD 的上升沿,CV减1 ,CV达到指定的数据 类型的下限值时不再减小。 CV大于等于PV时,QU为1,反之为0。 CV小于等于0时,QD为1,反之为0。 装载输入LD为1状态时,PV被装入CV, QU变为1状态,QD被复位为0状态。 R为1状态时,计数器被复位,CV被清 零,输出QU变为0状态,QD变为1状态, CU 、CD和LD不再起作用。 第21页/共59页 3.3 数据处理指令数据处理指令 3.3.1 比较器操作指令比较器操作指令 比较指令用来比较数据类型相同的两个操作数的大小。满足比较关系式给 出的条件时,等效触点接通。操作数可以是I、Q、M、L、D存储区中的变 量或常数。比较

21、指令需要设置数据类型,可以设置比较条件。 “值在范围内”指令IN_RANGE与“值超出范围”指令OUT_RANGE可以 视为一个等效的触点, MIN、MAX和VAL的数据类型必须相同。有能流流 入且满足条件时等效触点闭合,有能流流出。 OK和NOT OK触点指令检查是否是有效或无效的浮点数。 第22页/共59页 【例3-4】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 “T1”.Q是TON的位输出,PLC进入RUN模式时,TON的IN输入端为1状 态,TON的当前值从0开始不断增大。当前值等于预设值时,“T1”.Q变为1 状态,其常闭触点断开,定时器被复位,“T1”.Q变为0状态。

22、下一扫描周 期其常闭触点接通,定时器又开始定时。TON的当前时间“T1”.ET按锯齿 波形变化。比较指令用来产生脉冲宽度可调的方波,Q1.0为0状态的时间取 决于比较触点下面的操作数的值。 第23页/共59页 3.3.2 使能输入与使能输出使能输入与使能输出 1BCD码码 BCD是二进制编码的十进制数的缩写,用4位二进制数表示一位十进制数, 每位BCD码允许的数值范围为2#00002#1001,对应于十进制数09。BCD码 的最高位二进制数用来表示符号,负数为1,正数为0。一般令负数和正数的最 高4位二进制数分别为1111或0000。16位BCD码的范围为-999+999,32位 BCD码的范

23、围为-9999999+9999999。BCD码各位之间的关系是逢十进一,图 3-38中的BCD码为-829。BCD码用于PLC的输入和输出。 2EN与与ENO 有能流流到方框指令的EN(使能输入)端,方框指令才能执行。如果EN输 入有能流流入,而且执行时无错误,则使能输出ENO端将能流传递给下一个元 件。如果执行过程中有错误,能流在出现错误的方框指令终止。右键单击指令 框,可以生成ENO或不生成ENO(ENO变为灰色)。不生成ENO时,ENO端 始终有能流流出。 第24页/共59页 CONVERT是数据转换指令,需要在CONV下面“to”两边设置转换前后的 数据的数据类型。 启动程序状态功能,

24、 设置转换前的BCD码为16#F234,转换 后得到-234,程序执行成功,有能流从ENO输出端流出。 转换前的数值如果为16#23F,16#F不是BCD码的数字,指令执行出错,没 有能流从ENO流出。可以在指令的在线帮助中找到使ENO为0状态的原因。 ENO可以作为下一个方框的EN输入,只有前一个方框被正确执行,与它连 接的后面的程序才能被执行。EN和ENO的操作数均为能流,数据类型为Bool。 3.3.3 转换操作指令 1转换值指令 转换值指令CONVERT的参数IN、OUT可以设置十多种数据类型。有4条浮点 数转换为双整数指令,用得最多的是四舍五入的取整指令ROUND。 第25页/共59

25、页 3标准化指令标准化指令 标准化指令NORM_X的整数输入值VALUE(MINVALUEMAX)被线性 转换(标准化)为0.01.0之间的浮点数,需设置变量的数据类型。 OUT =(VALUE - MIN)/(MAX - MIN) 4缩放指令缩放指令 缩放指令SCALE_X的浮点数输入值VALUE(0.0VALUE1.0)被线性转 换(映射)为MIN和MAX定义的数值范围之间的整数。 OUT = VALUE(MAX - MIN)+ MIN 第26页/共59页 【例3-5】 某温度变送器的量程为-200850,输出信号为420mA,符 号地址为“模拟值”的IW96将020mA的电流信号转换为数

26、字027648, 求以为单位的浮点数温度值。 4mA对应的模拟值为5530,IW96将-200850的温度转换为模拟值 553027648,用“标准化”指令NORM_X将553027648的模拟值归一化为 0.01.0之间的浮点数“归一化” ,然后用“缩放”指令SCALE_X将归一化 后的数字转换为-200850的浮点数温度值,用变量“温度值”保存。 第27页/共59页 【例3-6】地址为QW96的整型变量“AQ输入”转换后的DC 010V电压 作为变频器的模拟量输入值,010V的电压对应的转速为01800rpm。求 以rpm为单位的整型变量“转速”对应的AQ模块的输入值“AQ输入”。 “标准

27、化”指令NORM_X将01800的转速值归一化为0.01.0之间的浮点 数“归一化”,然后用“缩放”指令SCALE_X将归一化后的数字转换为0 27648的整数值,用变量“AQ输入”保存。 第28页/共59页 3.3.4 移动操作指令移动操作指令 1移动值指令移动值指令 “移动值”指令MOVE用于将IN输入的源数据传送给OUT1输出的目的地 址,并且转换为OUT1允许的数据类型(与是否进行IEC检查有关),源数据 保持不变。MOVE指令的IN和OUT1可以是Bool之外所有的基本数据类型、 数据类型DTL、Struct、Array,IN还可以是常数。可增减输出参数的个数。 如果IN数据类型的位

28、长度超出OUT1数据类型的位长度,源值的高位丢失。 如果IN数据类型的位长度小于输出OUT1数据类型的位长度,目标值的高位 被改写为0。 2交换指令交换指令 交换指令SWAP用于交换字或双字中的字节。 第29页/共59页 3填充存储区指令填充存储区指令 生成“数据块_1”(DB3)和“数据块_2”(DB4),在DB3中创建有40 个Int元素的数组Source,在DB4中创建有40个Int元素的数组Distin。 “Tag_13”(I0.4)的常开触点接通时,“填充存储区”指令FILL_BLK将 常数3527填充到数据块_1中的数组Source的前20个整数元素中。 “不可中断的存储区填充”指

29、令UFILL_BLK与FILL_BLK指令的功能相同, 其填充操作不会被操作系统的其他任务打断。 第30页/共59页 4存储区移动指令存储区移动指令 I0.3(Tag_12)的常开触点接通时,“存储区移动”指令MOVE_BLK将源 区域数据块_1的数组Source的0号元素开始的20个Int元素的值,复制给目标 区域数据块_2的数组Distin的0号元素开始的20个元素。复制操作按地址增大 的方向进行。 IN和OUT是待复制的源区域和目标区域中的首个元素。 “不可中断的存储区移动”指令UMOVE_BLK与MOVE_BLK的功能基本 上相同,其复制操作不会被操作系统的其他任务打断。 第31页/共

30、59页 5块填充与块传送指令的实验块填充与块传送指令的实验 将项目“数据处理指令应用”下载到CPU,双击打开项目树中的DB4,显 示各数组元素,启动监视。因为没有设置保持性功能,此时DB3和DB4的各 数组元素的初始值均为0。 接通I0.4(“Tag_13”)的常开触点,FILL_BLK与UFILL_BLK指令被执 行,DB3中的数组元素Source0Source19被填充数据3527,Source20 Source39被填充数据32153。 接通I0.3(Tag_12)的常开触点,MOVE_BLK与UMOVE_BLK指令被执行, DB3中的数组Source的40个元素被传送给DB4中的数组D

31、istin的40个元素。 第32页/共59页 3.3.5 移位与循环移位指令移位与循环移位指令 1移位指令移位指令 右移指令SHR和左移指令SHL将输入参数IN指定的存储单元的整个内容逐 位右移或左移N位。需要设置指令的数据类型。有符号数右移后空出来的位 用符号位填充。无符号数移位和有符号数左移后空出来的位用0填充。右移n 位相当于除以2n ,左移n位相当于乘以2n 。 如果移位后的数据要送回原地址,应在信号边沿操作。 2循环移位指令循环移位指令 “循环右移”指令ROR和“循环左移”指令ROL将输入参数IN指定的存储 单元的整个内容逐位循环右移或循环左移N位,移出来的位又送回存储单元 另一端空

32、出来的位。移位的结果保存在输出参数OUT指定的地址。移位位数 N可以大于被移位存储单元的位数。 第33页/共59页 3使用循环移位指令的彩灯控制器使用循环移位指令的彩灯控制器 M1.0是首次扫描脉冲,用它给彩灯置初值7。时钟存储器位M0.5的频率为 1Hz。是否移位用I0.6来控制,移位的方向用I0.7来控制。因为QB0循环移位 后的值又送回QB0,必须使用P_TRIG指令。 第34页/共59页 3.4 数学运算指令数学运算指令 3.4.1 数学函数指令数学函数指令 1四则运算指令四则运算指令 ADD、SUB、MUL和DIV指令可选多种整数和实数数据类型,整数除法截 尾取整。IN1和IN2可以

33、是常数,IN1、IN2和OUT的数据类型应相同。ADD 和MUL指令可增加输入个数。 【例3-7】压力变送器的量程为010MPa,输出信号为010V,被IW64转 换为027648的数字N。试求以kPa为单位的压力值。 P =(10000 N)/ 27648 (kPa) Temp1的数据类型为DInt,在运算时一定要先乘后除,应使用双整数乘法和 除法。为此首先用CONV指令将IW64转换为双整数。 第35页/共59页 【例3-8】 使用浮点数运算计算上例以kPa为单位的压力值。 P =(10000 N)/ 27648 = 0.361690N (kPa) 首先用CONV指令将IW64转换为实数,

34、再用实数乘法指令完成运算。最后 用ROUND指令,将运算结果四舍五入为整数。 第36页/共59页 2CALCULATE指令指令 可以用“计算”指令CALCULATE定义和执行数学表达式,根据所选的数据 类型计算复杂的数学运算或逻辑运算。双击指令框中间的数学表达式方框, 打开下图的对话框。输入待计算的表达式,表达式只能使用方框内的输入参 数INn和运算符。可增加输入参数的个数。 运行时使用方框外输入的值执行指定的表达式的运算,运算结果传送到 MD36中。 第37页/共59页 3浮点数函数运算指令 浮点数数学运算指令的操作数IN和OUT的数据类型均为Real。 SQRT和LN指令的输入值如果小于0

35、,输出OUT为无效的浮点数。 三角函数指令和反三角函数指令中的角度均为以弧度为单位的浮点数。以 度为单位的角度值乘以/180.0,转换为弧度值。 【例 3-9】 测量远处物体的高度,已知被测物体到测量点的距离L和以度为 单位的夹角,求被测物体的高度H,H = Ltan ,MD40中角度的单位为度, 乘以/180 = 0.0174533,得到角度的弧度值,运算的中间结果用实数临时局 部变量Temp2保存。MD44中是L的实数值,运算结果在MD48中。 第38页/共59页 4其他数学函数指令 (1)“返回除法的余数”指令MOD用于求各种整数除法的余数。输出 OUT中的运算结果为除法运算IN1/ I

36、N2的余数。 (2)“求二进制补码”(取反)指令NEG将输入IN的值的符号取反后,保 存在输出OUT中。IN和OUT的数据类型可以是SInt、Int、DInt和Real。 (3)递增指令INC与递减指令DEC将参数IN/OUT的值分别加1和减1。数据 类型为各种整数。图中的INC指令用来计I0.4动作的次数,应在INC指令之前 添加P_TRIG指令。 第39页/共59页 (4)“计算绝对值”指令ABS用来求输入IN中的有符号整数或实数的绝对 值,将结果保存在输出OUT中。IN和OUT的数据类型应相同。 (5)“获取最小值”指令MIN和“获取最大值”指令MAX比较输入IN1和 IN2的值,将其中

37、较小或较大的值送给输出OUT。可增加输入个数。 (6)“设置限值”指令LIMIT将输入IN的值限制在输入MIN与MAX的值范围 之间。 (7)“提取小数”指令FRAC将输入IN的小数部分传送到输出OUT。“取 幂”指令EXPT计算以输入IN1的值为底,以输入IN2为指数的幂(OUT = IN1IN2)。 第40页/共59页 3.4.2 字逻辑运算指令字逻辑运算指令 1字逻辑运算指令字逻辑运算指令 字逻辑运算指令对两个输入IN1和IN2逐位进行逻辑运算,运算结果在输出 OUT指定的地址中。可以增加输入的个数。 “与运算”(AND)指令的两个操作数的同一位如果均为1,运算结果 的对应位为1,否则为

38、0(见表3-5)。“或运算”(OR)指令的两个操作 数的同一位如果均为0,运算结果的对应位为0,否则为1。“异或运算” 运算(XOR)指令的两个操作数的同一位如果不相同,运算结果的对应位为1 ,否则为0。指令的操作数的数据类型为位字符串Byte、Word或DWord。 “求反码”指令INVERT将输入IN中的二进制整数逐位取反(由0变1,由1 变0),运算结果存放在输出OUT指定的地址。 第41页/共59页 2解码与编码指令 如果输入参数IN的值为n,“解码”指令DECO将输出参数OUT的第n位置 位为1,其余各位置0。如果输入IN的值大于31,将IN的值除以32以后,用余 数来进行解码操作。

39、IN为5时OUT为2#0010 0000(16#20),仅第5位为1。 “编码”指令ENCO将IN中为1的最低位的位数送给OUT指定的地址。如果 IN为2#00101000(即16#28),OUT中的编码结果为3。如果IN为1或0, OUT的值为0。如果IN为0,ENO为0状态。 第42页/共59页 3SEL与MUX、DEMUX指令 “选择”指令SEL(Select)的Bool输入参数G为0时选中IN0,G为1时选中 IN1,选中的数值被保存到输出参数OUT指定的地址。 “多路复用”指令MUX(Multiplex)根据输入参数K的值,选中某个输入数 据,并将它传送到输出参数OUT指定的地址。K

40、 = m时,将选中输入参数INm 。如果K的值大于可用的输入个数,ELSE的值将复制到输出OUT中,ENO为0 状态。 可以增加输入参数INn的个数。INn、ELSE和OUT的数据类型应相同。 “多路分用”指令DEMUX根据输入参数K的值,将输入IN的内容复制到选 定的输出,其他输出则保持不变。K = m时,将复制到输出OUTm。可以增加 输出参数OUTn的个数。IN、ELSE和OUTn的数据类型应相同。如果参数K的 值大于可用的输出个数,参数ELSE输出IN的值,ENO为0状态。 第43页/共59页 3.5 程序控制操作指令程序控制操作指令 1跳转指令与标签指令跳转指令与标签指令 跳转指令中

41、止程序的顺序执行,跳转到指令中的跳转标签所在的目的地址 。可以向前或向后跳转,只能在同一个代码块内跳转。在一个块内,跳转标 签的名称只能使用一次。一个程度段中只能设置一个跳转标签。 “RLO为1时跳转”指令JMP的线圈通电时跳转到指定的跳转标签。 “RLO为0时跳转”指令JMPN的线圈断电时跳转到指定的跳转标签。 如果跳转条件不满足,将继续执行跳转指令之后的程序。标签在程序段的 开始处,标签的第一个字符必须是字母。 第44页/共59页 2跳转分支指令与定义跳转列表指令跳转分支指令与定义跳转列表指令 “跳转分支指令”SWITCH根据一个或 多个比较指令的结果,定义要执行的多个 程序跳转。用参数K

42、指定要比较的值,将该 值与各个输入提供的值进行比较。满足条 件则跳转到对应的标签。不满足上述条件 将跳转到ELSE指定的标签。可增加输出的 个数。 “定义跳转列表”指令JMP_LIST定义多 个有条件跳转,并继续执行由参数K的值指 定的程序段中的程序。可增加输出的个数 。如果K值大于可用的输出编号,则继续执 行块中下一个程序段的程序。 “重新启动周期监视时间”指令RE_TRIGR用于复位监控定时器。 “退出程序”指令STP使PLC进入STOP模式。“返回”指令RET用来有条 件地结束块。RET线圈上面的参数返回值是FC或FB的ENO的值。 第45页/共59页 3.6 日期和时间指令日期和时间指

43、令 在CPU断电时,用超级电容提供的实时时钟的保持时间通常为20天。 数据类型Time的长度为4B,时间单位为ms。数据结构DTL(日期时间)共 12B,分别是年(2B)、月、日、星期、时、分、秒、ns(4B)。星期代码 17分别是星期日星期六。 “转换时间并提取”指令T_CONV用于在整数和时间数据类型之间转换。 T_ADD、T_SUB指令将两个时间段相加、减。 “时间值相减”指令T_DIFF将 IN1 中的时间值减去 IN2 中的时间值。 “组合时间”指令T_COMBINE用于合并日期值和时间值。 指令WR_SYS_T和RD_SYS_T用于设置和读取CPU时钟的系统时间(格林尼 治标准时间

44、)。 指令WR_LOC_T和RD_LOC_T用于设置和读取CPU时钟的本地时间。 组态CPU的属性时,应设置实时时间的时区为北京,不启用夏令时。 指令SET_TIMEZONE用于设置时区。 指令RTM(运行时间定时器)用于对CPU的32位运行小时计数器的设置、启 动、停止和读取操作。 第46页/共59页 生成全局数据块“数据块_1”,在其中生成数据类型为DTL的变量DT1 DT3 。 用监控表将新的时间值写入“数据块_1”.DT3。“写时间”(M3.2)为1状 态时,“写入本地时间”指令WR_LOC_T将输入参数LOCTIME输入的日期时 间作为本地时间写入实时钟。参数DST与夏令时有关,我国

45、不使用夏令时。 “读时间”(M3.1)为1状态时, “读取时间”指令RD_SYS_T和“读取本 地时间”指令RD_LOC_T的输出OUT分别是数据类型为DTL的PLC中的系统时 间和本地时间。 本地时间多8个小时。 第47页/共59页 3.7 字符串与字符指令字符串与字符指令 3.7.1 字符串转换指令字符串转换指令 String数据类型的首字节是字符串的最大长度,第2个字节是当前实际使用的 字符数,后面是最多254B的ASCII字符代码。此外还有宽字符串Wstring。 在DB1中生成3个字符串,数据类型为String18,最大长度18个字符。 “转换字符串”指令S_CONV用于字符串和数值

46、的相互转换。STRG_VAL是 “将字符串转换为数值”指令,VAL_STRG是“将数值转换为字符串”指令。 指令Strg_TO_Chars将字符串转换为字符元素组成的数组,指令Chars_TO_ Strg将字符元素组成的数组转换为字符串。指令ATH将ASCII字符串转换为十 六进制数,指令HTA将十六进制数转换为ASCII字符串。 3.7.2 字符串指令字符串指令 LEN是“确定字符串的长度”指令,MAX_LEN是“确定字符串的最大长度 指令”, CONCAT是“合并字符串”指令。 第48页/共59页 LEFT、RIGHT和MID指令分别用来读取字符串左边、右边和中间的字符。 DELETE、I

47、NSERT、REPLACE和FIND指令分别用来删除、插入、替换和 查找字符。指令中的L用来定义字符个数,P是字符串中字符的位置。 第49页/共59页 3.8 高速脉冲输出与高速计数器高速脉冲输出与高速计数器 3.8.1 高速脉冲输出高速脉冲输出 1高速脉冲输出高速脉冲输出 每个CPU有4个PTO/PWM发生器,通过DC输出的CPU集成的Q0.0Q0.3 或信号板上的Q4.0Q4.3输出PTO或PWM脉冲。 脉冲宽度与脉冲周期之比称为占空比,脉冲列输出(PTO)功能提供占空 比为50%的方波脉冲列输出。脉冲宽度调制(PWM)功能提供脉冲宽度可以 用程序控制的脉冲列输出。 2PWM的组态的组态

48、项目“高速计数器与高速输出”用2DI/2DQ信号板输出高速脉冲。打开设 备视图,选中CPU。选中巡视窗口的“属性 常规”选项卡,再选中左边的 “PTO1/ PWM1”文件夹中的“常规”,用右边窗口的复选框启用该脉冲发 生器。选中左边窗口的“参数分配”,设置信号类型为PWM,“时基”为 ms,“脉宽格式”为百分之一,用“循环时间”输入域设置脉冲周期为2ms, “初始脉冲宽度” 为50%。 选中左边窗口的“I/O地址”(见图3-77),右边窗口PWM1默认的的起始 地址为1000。 第50页/共59页 3PWM的编程的编程 将指令列表的“扩展指令”选项板的文件夹“脉冲”中的“脉宽调制”指 令CTR

49、L_PWM拖放到OB1,单击出现的“调用选项”对话框中的“确定” 按钮,生成该指令的背景数据块DB1。 单击参数PWM左边的问号,再单击出现的 按钮,用下拉式列表选中 PWM1的硬件标识符“LocalPulse_1”,其值为9。EN为1状态时,用输入参 数ENABLE(I0.4)来启动或停止脉冲发生器。参数STATUS是状态代码。 3.8.2 高速计数器高速计数器 高速计数器与增量式编码器一起工作。单通道增量式编码器内部只有1对 光耦合器,只能产生一个脉冲列。双通道增量式编码器又称为A/B相或正交 相位编码器,输出相位差为90的两组独立脉冲列。正转和反转时两路脉冲 的超前、滞后关系相反,可以识

50、别出转轴旋转的方向。 第51页/共59页 3高速计数器的功能高速计数器的功能 HSC有4种高速计数工作模式:有内部、外部方向控制的单相计数器,具 有两路时钟脉冲输入的双相计数器和A/B相正交计数器。 每种HSC模式都可以使用或不使用复位输入。复位输入为1状态时,HSC 的实际计数值被清除。 某些HSC模式可以选用 3 种频率测量的周期来测量频率值。 使用“扩展高速计数器”指令CTRL_HSC_EXT,可以按指定的时间周期, 测量出被测信号的周期。 4高速计数器的组态步骤高速计数器的组态步骤 1)选中设备视图中的CPU,选中巡视窗口的“属性”选项卡左边的高速 计数器HSC1的“常规”,用复选框选

51、中“启用该高速计数器”。 2)选中左边窗口的“功能”(见图3-82),设置“计数类型”为计数, “工作模式”为单相,“计数方向取决于”为“用户程序(内部方向控 制)”,“初始计数方向”为“增计数”。 3)选中图3-83左边窗口的“复位为初始值”,设置“初始计数器值”为0, “初始参考值”为2000。 4)选中左边窗口的“事件组态”,用右边窗口的复选框激活“计数器值 等于参考值这一事件生成中断”。生成硬件中断组织块OB40后,将它指定 给计数值等于参考值的中断事件。 5)选中左边窗口的“硬件输入”,在右边窗口可以看到该HSC使用的时 钟发生器输入点为I0.0,最高频率为100kHz。 第52页/

52、共59页 6)选中左边窗口的“I/O地址”,可以看到HSC1的起始地址为1000。 5设置数字量输入的输入滤波器的滤波时间设置数字量输入的输入滤波器的滤波时间 高速计数器的数字量输入点I0.0的滤波时间应小于计数输入脉冲宽度 (1ms),故设置I0.0的输入滤波时间为0.8ms。 3.8.3 高速脉冲输出与高速计数器实验高速脉冲输出与高速计数器实验 1实验的基本要求实验的基本要求 用高速脉冲输出功能产生周期为2ms,占空比为50的PWM脉冲列,送给 高速计数器HSC1计数。期望的高速计数器的当前计数值和Q0.4Q0.6的波 形见图3-85。 2硬件接线硬件接线 用信号板的输出点Q4.0发出PWM脉冲,送给HSC1的高速脉冲输入点I0.0 计数。用CPU内置的电源作输入回路的电源,它同时又作为2DI/2DQ信号板 的电源。 第53页/共59页 3PWM的组态与编程的组态与编程 用信号板上的输出点产生PW

温馨提示

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

评论

0/150

提交评论