S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx

上传人(卖家):三亚风情 文档编号:2527028 上传时间:2022-04-29 格式:PPTX 页数:59 大小:1.21MB
下载 相关 举报
S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx_第1页
第1页 / 共59页
S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx_第2页
第2页 / 共59页
S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx_第3页
第3页 / 共59页
S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx_第4页
第4页 / 共59页
S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、第3章 S7-1200的指令3.1 位逻辑指令位逻辑指令 1常开触点与常闭触点常开触点与常闭触点 打开项目“位逻辑指令应用”,常开触点在指定的位为1状态时闭合,为0状态时断开。常闭触点反之。两个触点串联将进行“与”运算,两个触点并联将进行“或”运算。 2取反取反RLO触点触点 RLO是逻辑运算结果的简称,中间有“NOT”的触点为取反RLO触点,如果没有能流流入取反RLO触点,则有能流流出。如果有能流流入取反RLO触点,则没有能流流出。 3线圈线圈 线圈将输入的逻辑运算结果(RLO)的信号状态写入指定的地址,线圈通电时写入1,断电时写入0。可以用Q0.4:P的线圈将位数据值写入过程映像输出Q0.

2、4,同时立即直接写给对应的物理输出点。 如果有能流流过M4.1的取反线圈,则M4.1为0状态,其常开触点断开,反之M4.1为1状态,其常开触点闭合。 4置位、复位输出指令置位、复位输出指令 S(置位输出)、R(复位输出)指令将指定的位操作数置位和复位。 如果同一操作数的S线圈和R线圈同时断电,指定操作数的信号状态不变。 置位输出指令与复位输出指令最主要的特点是有记忆和保持功能。如果I0.4的常开触点闭合,Q0.5变为1状态并保持该状态。即使I0.4的常开触点断开,Q0.5也仍然保持1状态。在程序状态中,用Q0.5的S和R线圈连续的绿色圆弧和绿色的字母表示Q0.5为1状态,用间断的蓝色圆弧和蓝色

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

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

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

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

7、描周期的脉冲。 在输入CLK输入端的电路时,选中左侧的垂直“电源”线,双击收藏夹中的“打开分支”按钮,生成一个串联电路。用鼠标将串联电路右端的双箭头拖拽到CLK端。松开鼠标左键,串联电路被连接到CLK端。 11边沿检测指令的比较边沿检测指令的比较 以上升沿检测为例,P触点用于检测触点上面的地址的上升沿,并且直接输出上升沿脉冲。其他3种指令都是用来检测RLO(流入它们的能流)的上升沿。 P线圈用于检测能流的上升沿,并用线圈上面的地址来输出上升沿脉冲。其他3种指令都是直接输出检测结果。 R_TRIG指令与P_TRIG指令都是用于检测流入它们的CLK端的能流的上升沿,并直接输出检测结果。其区别在于R

8、_TRIG指令用背景数据块保存上一次扫描循环CLK端信号的状态,而P_TRIG指令用边沿存储位来保存它。 12故障显示电路故障显示电路 【例3-1】 设计故障信息显示电路,从故障信号I0.0的上升沿开始,Q0.7控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯熄灭。如果没有消失,则指示灯转为常亮,直至故障消失。 设置MB0为时钟存储器字节,M0.5提供周期为1s的时钟脉冲。出现故障时,将I0.0提供的故障信号用M2.1锁存起来,M2.1和M0.5的常开触点组成的串联电路使Q0.7控制的指示灯以1Hz的频率闪烁。按下复位按钮I0.1,故障锁存标志M2.1被

9、复位为0状态。如果故障已经消失,指示灯熄灭。如果没有消失,M2.1的常闭触点与I0.0的常开触点组成的串联电路使指示灯转为常亮,直至I0.0变为0状态,故障消失,指示灯熄灭。3.2 定时器与计数器指令定时器与计数器指令3.2.1 定时器指令定时器指令 1脉冲定时器脉冲定时器 将指令列表中的“生成脉冲”指令TP拖放到梯形图中,在出现的“调用选项”对话框中,将默认的背景数据块的名称改为T1,可以用它来做定时器的标示符。单击“确定”按钮,自动生成背景数据块。 定时器的输入IN为启动输入端,PT为预设时间值,ET为定时开始后经过的当前时间值,它们的数据类型为32位的Time,单位为ms,最大定时时间为

10、24天多。Q为定时器的位输出,各参数均可以使用I(仅用于输入参数)、Q、M、D、L存储区,PT可以使用常量。定时器指令可以放在程序段的中间或结束处。 脉冲定时器用于将输出Q置位为PT预设的一段时间。在IN输入信号的上升沿启动该指令,Q输出变为1状态,开始输出脉冲,ET从0ms开始不断增大,达到PT预设的时间时,Q输出变为0状态。如果IN输入信号为1状态,则当前时间值保持不变(见波形A)。如果IN输入信号为0状态,则当前时间变为0s(见波形B)。IN输入的脉冲宽度可以小于预设值,在脉冲输出期间,即使IN输入出现下降沿和上升沿,也不会影响脉冲的输出。 I0.1为1时,定时器复位线圈RT通电,定时器

11、T1被复位。如果正在定时,且IN输入信号为0状态,将使当前时间值ET清零,Q输出也变为0状态(见波形C)。如果此时正在定时,且IN输入信号为1状态,将使当前时间清零,但是Q输出保持为1状态(见波形D)。复位信号I0.1变为0状态时,如果IN输入信号为1状态,将重新开始定时(见波形E)。 2接通延时定时器接通延时定时器 接通延时定时器TON用于将Q输出的置位操作延时PT指定的一段时间。在IN输入的上升沿开始定时。ET大于等于PT指定的设定值时,输出Q变为1状态,ET保持不变(见波形A)。 IN输入电路断开时,或定时器复位线圈RT通电,定时器被复位,当前时间被清零,输出Q变为0状态。如果IN输入信

12、号在未达到PT设定的时间时变为0状态(见波形B),输出Q保持0状态不变。 复位输入I0.3变为0状态时,如果IN输入信号为1状态,将开始重新定时(见波形D)。 3关断延时定时器指令关断延时定时器指令 关断延时定时器(TOF)用于将Q输出的复位操作延时PT指定的一段时间。IN输入电路接通时,输出Q为1状态,当前时间被清零。在IN的下降沿开始定时,ET从0逐渐增大。ET等于预设值时,输出Q变为0状态,当前时间保持不变,直到IN输入电路接通(见波形A)。关断延时定时器可以用于设备停机后的延时。 如果ET未达到PT预设的值,IN输入信号就变为1状态,ET被清0,输出Q保持1状态不变(见波形B)。复位线

13、圈RT通电时,如果IN输入信号为0状态,则定时器被复位,当前时间被清零,输出Q变为0状态(见波形C)。如果复位时IN输入信号为1状态,则复位信号不起作用(见波形D)。 4时间累加器时间累加器 时间累加器TONR的IN输入电路接通时开始定时(见波形A和B)。输入电路断开时,累计的当前时间值保持不变。可以用TONR来累计输入电路接通的若干个时间段。图3-21中的累计时间t1+t2等于预设值PT时,Q输出变为1状态(见波形D)。 复位输入R为1状态时(见波形C),TONR被复位,它的ET变为0,输出Q变为0状态。 “加载持续时间”线圈PT通电时,将PT线圈指定的时间预设值写入TONR定时器的背景数据

14、块的静态变量PT(”T4”.PT),将它作为TONR的输入参数PT的实参。用I0.7复位TONR时,”T4”.PT也被清0。 【例3-2】 用接通延时定时器设计周期和占空比可调的振荡电路。 图3-22中的串联电路接通后,定时器T5的IN输入信号为1状态,开始定时。2s后定时时间到,它的Q输出使定时器T6开始定时,同时Q0.7的线圈通电。3s后T6的定时时间到,它的输出“T6”.Q的常闭触点断开,使T5的IN输入电路断开,其Q输出变为0状态,使Q0.7和定时器T6的Q输出也变为0状态。下一个扫描周期因为“T6”.Q的常闭触点接通,T5又从预设值开始定时。Q0.7的线圈将这样周期性地通电和断电,直

15、到串联电路断开。Q0.7线圈通电和断电的时间分别等于T6和T5的预设值。 【例3-3】 用3种定时器设计卫生间冲水控制电路。I0.7是光电开关检测到的有使用者的信号,用Q1.0控制冲水电磁阀。 从I0.7(有人使用)的上升沿开始,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的常闭触点串联的电路来实现上述要求。两块脉冲波形的叠加用并

16、联电路来实现。“T7”.Q的常开触点用于防止3s内有人进入和离开时冲水。 5用数据类型为用数据类型为IEC_TIMER的变量的变量提供背景数据提供背景数据 图3-23和图3-24中的程序的控制要求完全相同。图3-24中的定时器用数据块“定时器DB”中数据类型为IEC_TIMER的变量提供背景数据。 单击TON方框上面的问号 ,再单击出现的小方框右边的 按钮,单击出现的地址列表中的“定时器DB”,地址域出现“定时器DB.”。单击地址列表中的“T1”,地址域出现“定时器DB.T1.”。单击地址列表中的“无”,指令列表消失,地址域出现“定时器DB”.T1。用同样的方法为TP和TOF提供背景数据。用类

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

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

19、I1.1为0状态,在CU信号的上升沿,CV加1,直到达到指定的数据类型的上限值用,CV的值不再增加。 CV大于等于PV时,输出Q为1状态,反之为0状态。第一次执行指令时,CV被清零。各类计数器的复位输入R为1状态时,计数器被复位,输出Q变为0状态,CV被清零。 3减计数器减计数器 减计数器的装载输入LD为1状态时,输出Q被复位为0,并把PV的值装入CV。在减计数输入CD的上升沿,CV减1,直到CV达到指定的数据类型的下限值。此后CV的值不再减小。 CV小于等于0时,输出Q为1状态,反之Q为0状态。第一次执行指令时,CV被清零。 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不再起作用。3.3 数据处理指令数据处理指令3.3.1 比较器操作指令比较器操作指令 比较指令用来比较数据类型相同的两个操作数的大小。满足比较关系式给出的条件时,等效触点接通。操作数可以是I、Q、M、L、D存储区中的变量或常数。比较指令需要设置数

21、据类型,可以设置比较条件。 “值在范围内”指令IN_RANGE与“值超出范围”指令OUT_RANGE可以视为一个等效的触点, MIN、MAX和VAL的数据类型必须相同。有能流流入且满足条件时等效触点闭合,有能流流出。 OK和NOT OK触点指令检查是否是有效或无效的浮点数。 【例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状态的时间取决于比较触点下面的操作数的值。3.3.2 使能输入与使能输出使能输入与使能输出 1BCD码码 BCD是二进制编码的十进制数的缩写,用4位二进制数表示一位十进制数,每位BCD码允许的数值范围为2#00002#1001,对应于十进制数09。BCD码的最高位二进制数用来表示符号,负数为1,正数为0。一般令负数和正数的最高4位二进制数分别为1111或0000。16位BCD码的范围为-999+999,32位BCD码的范围为-9999999+9999999。BCD码各位之间的关系是逢十进一,图3-

23、38中的BCD码为-829。BCD码用于PLC的输入和输出。 2EN与与ENO 有能流流到方框指令的EN(使能输入)端,方框指令才能执行。如果EN输入有能流流入,而且执行时无错误,则使能输出ENO端将能流传递给下一个元件。如果执行过程中有错误,能流在出现错误的方框指令终止。右键单击指令框,可以生成ENO或不生成ENO(ENO变为灰色)。不生成ENO时,ENO端始终有能流流出。 CONVERT是数据转换指令,需要在CONV下面“to”两边设置转换前后的数据的数据类型。 启动程序状态功能, 设置转换前的BCD码为16#F234,转换后得到-234,程序执行成功,有能流从ENO输出端流出。 转换前的

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

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

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

27、作指令移动操作指令 1移动值指令移动值指令 “移动值”指令MOVE用于将IN输入的源数据传送给OUT1输出的目的地址,并且转换为OUT1允许的数据类型(与是否进行IEC检查有关),源数据保持不变。MOVE指令的IN和OUT1可以是Bool之外所有的基本数据类型、数据类型DTL、Struct、Array,IN还可以是常数。可增减输出参数的个数。 如果IN数据类型的位长度超出OUT1数据类型的位长度,源值的高位丢失。如果IN数据类型的位长度小于输出OUT1数据类型的位长度,目标值的高位被改写为0。 2交换指令交换指令 交换指令SWAP用于交换字或双字中的字节。 3填充存储区指令填充存储区指令 生成

28、“数据块_1”(DB3)和“数据块_2”(DB4),在DB3中创建有40个Int元素的数组Source,在DB4中创建有40个Int元素的数组Distin。 “Tag_13”(I0.4)的常开触点接通时,“填充存储区”指令FILL_BLK将常数3527填充到数据块_1中的数组Source的前20个整数元素中。 “不可中断的存储区填充”指令UFILL_BLK与FILL_BLK指令的功能相同,其填充操作不会被操作系统的其他任务打断。 4存储区移动指令存储区移动指令 I0.3(Tag_12)的常开触点接通时,“存储区移动”指令MOVE_BLK将源区域数据块_1的数组Source的0号元素开始的20个

29、Int元素的值,复制给目标区域数据块_2的数组Distin的0号元素开始的20个元素。复制操作按地址增大的方向进行。 IN和OUT是待复制的源区域和目标区域中的首个元素。 “不可中断的存储区移动”指令UMOVE_BLK与MOVE_BLK的功能基本上相同,其复制操作不会被操作系统的其他任务打断。 5块填充与块传送指令的实验块填充与块传送指令的实验 将项目“数据处理指令应用”下载到CPU,双击打开项目树中的DB4,显示各数组元素,启动监视。因为没有设置保持性功能,此时DB3和DB4的各数组元素的初始值均为0。 接通I0.4(“Tag_13”)的常开触点,FILL_BLK与UFILL_BLK指令被执

30、行,DB3中的数组元素Source0Source19被填充数据3527,Source20Source39被填充数据32153。 接通I0.3(Tag_12)的常开触点,MOVE_BLK与UMOVE_BLK指令被执行,DB3中的数组Source的40个元素被传送给DB4中的数组Distin的40个元素。3.3.5 移位与循环移位指令移位与循环移位指令 1移位指令移位指令 右移指令SHR和左移指令SHL将输入参数IN指定的存储单元的整个内容逐位右移或左移N位。需要设置指令的数据类型。有符号数右移后空出来的位用符号位填充。无符号数移位和有符号数左移后空出来的位用0填充。右移n位相当于除以2n ,左移

31、n位相当于乘以2n 。 如果移位后的数据要送回原地址,应在信号边沿操作。 2循环移位指令循环移位指令 “循环右移”指令ROR和“循环左移”指令ROL将输入参数IN指定的存储单元的整个内容逐位循环右移或循环左移N位,移出来的位又送回存储单元另一端空出来的位。移位的结果保存在输出参数OUT指定的地址。移位位数N可以大于被移位存储单元的位数。 3使用循环移位指令的彩灯控制器使用循环移位指令的彩灯控制器 M1.0是首次扫描脉冲,用它给彩灯置初值7。时钟存储器位M0.5的频率为1Hz。是否移位用I0.6来控制,移位的方向用I0.7来控制。因为QB0循环移位后的值又送回QB0,必须使用P_TRIG指令。3

32、.4 数学运算指令数学运算指令3.4.1 数学函数指令数学函数指令 1四则运算指令四则运算指令 ADD、SUB、MUL和DIV指令可选多种整数和实数数据类型,整数除法截尾取整。IN1和IN2可以是常数,IN1、IN2和OUT的数据类型应相同。ADD和MUL指令可增加输入个数。 【例3-7】压力变送器的量程为010MPa,输出信号为010V,被IW64转换为027648的数字N。试求以kPa为单位的压力值。 P =(10000 N)/ 27648 (kPa) Temp1的数据类型为DInt,在运算时一定要先乘后除,应使用双整数乘法和除法。为此首先用CONV指令将IW64转换为双整数。【例3-8】

33、 使用浮点数运算计算上例以kPa为单位的压力值。P =(10000 N)/ 27648 = 0.361690N (kPa) 首先用CONV指令将IW64转换为实数,再用实数乘法指令完成运算。最后用ROUND指令,将运算结果四舍五入为整数。 2CALCULATE指令指令 可以用“计算”指令CALCULATE定义和执行数学表达式,根据所选的数据类型计算复杂的数学运算或逻辑运算。双击指令框中间的数学表达式方框,打开下图的对话框。输入待计算的表达式,表达式只能使用方框内的输入参数INn和运算符。可增加输入参数的个数。 运行时使用方框外输入的值执行指定的表达式的运算,运算结果传送到MD36中。 3浮点数

34、函数运算指令 浮点数数学运算指令的操作数IN和OUT的数据类型均为Real。 SQRT和LN指令的输入值如果小于0,输出OUT为无效的浮点数。 三角函数指令和反三角函数指令中的角度均为以弧度为单位的浮点数。以度为单位的角度值乘以/180.0,转换为弧度值。 【例 3-9】 测量远处物体的高度,已知被测物体到测量点的距离L和以度为单位的夹角,求被测物体的高度H,H = Ltan ,MD40中角度的单位为度,乘以/180 = 0.0174533,得到角度的弧度值,运算的中间结果用实数临时局部变量Temp2保存。MD44中是L的实数值,运算结果在MD48中。 4其他数学函数指令 (1)“返回除法的余

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

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

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

38、时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状态。 3SEL与MUX、DEMUX指令 “选择”指令SEL(Select)的Bool输入参数G为0时选中IN0,G为1时选中IN1,选中的数值被保存到输出参数OUT指定的地址。 “多路复用”指令MUX(Multiplex)根据输入参数K的值,选中某个输入数据,并将它传送到输出参数OUT指定的地址。K = m时,将选中输入参数INm。如

39、果K的值大于可用的输入个数,ELSE的值将复制到输出OUT中,ENO为0状态。可以增加输入参数INn的个数。INn、ELSE和OUT的数据类型应相同。 “多路分用”指令DEMUX根据输入参数K的值,将输入IN的内容复制到选定的输出,其他输出则保持不变。K = m时,将复制到输出OUTm。可以增加输出参数OUTn的个数。IN、ELSE和OUTn的数据类型应相同。如果参数K的值大于可用的输出个数,参数ELSE输出IN的值,ENO为0状态。 3.5 程序控制操作指令程序控制操作指令 1跳转指令与标签指令跳转指令与标签指令 跳转指令中止程序的顺序执行,跳转到指令中的跳转标签所在的目的地址。可以向前或向

40、后跳转,只能在同一个代码块内跳转。在一个块内,跳转标签的名称只能使用一次。一个程度段中只能设置一个跳转标签。 “RLO为1时跳转”指令JMP的线圈通电时跳转到指定的跳转标签。 “RLO为0时跳转”指令JMPN的线圈断电时跳转到指定的跳转标签。 如果跳转条件不满足,将继续执行跳转指令之后的程序。标签在程序段的开始处,标签的第一个字符必须是字母。 2跳转分支指令与定义跳转列表指令跳转分支指令与定义跳转列表指令 “跳转分支指令”SWITCH根据一个或多个比较指令的结果,定义要执行的多个程序跳转。用参数K指定要比较的值,将该值与各个输入提供的值进行比较。满足条件则跳转到对应的标签。不满足上述条件将跳转

41、到ELSE指定的标签。可增加输出的个数。 “定义跳转列表”指令JMP_LIST定义多个有条件跳转,并继续执行由参数K的值指定的程序段中的程序。可增加输出的个数。如果K值大于可用的输出编号,则继续执行块中下一个程序段的程序。 “重新启动周期监视时间”指令RE_TRIGR用于复位监控定时器。 “退出程序”指令STP使PLC进入STOP模式。“返回”指令RET用来有条件地结束块。RET线圈上面的参数返回值是FC或FB的ENO的值。3.6 日期和时间指令日期和时间指令 在CPU断电时,用超级电容提供的实时时钟的保持时间通常为20天。 数据类型Time的长度为4B,时间单位为ms。数据结构DTL(日期时

42、间)共12B,分别是年(2B)、月、日、星期、时、分、秒、ns(4B)。星期代码17分别是星期日星期六。 “转换时间并提取”指令T_CONV用于在整数和时间数据类型之间转换。 T_ADD、T_SUB指令将两个时间段相加、减。 “时间值相减”指令T_DIFF将 IN1 中的时间值减去 IN2 中的时间值。 “组合时间”指令T_COMBINE用于合并日期值和时间值。 指令WR_SYS_T和RD_SYS_T用于设置和读取CPU时钟的系统时间(格林尼治标准时间)。 指令WR_LOC_T和RD_LOC_T用于设置和读取CPU时钟的本地时间。 组态CPU的属性时,应设置实时时间的时区为北京,不启用夏令时。

43、 指令SET_TIMEZONE用于设置时区。 指令RTM(运行时间定时器)用于对CPU的32位运行小时计数器的设置、启动、停止和读取操作。 生成全局数据块“数据块_1”,在其中生成数据类型为DTL的变量DT1 DT3 。 用监控表将新的时间值写入“数据块_1”.DT3。“写时间”(M3.2)为1状态时,“写入本地时间”指令WR_LOC_T将输入参数LOCTIME输入的日期时间作为本地时间写入实时钟。参数DST与夏令时有关,我国不使用夏令时。 “读时间”(M3.1)为1状态时, “读取时间”指令RD_SYS_T和“读取本地时间”指令RD_LOC_T的输出OUT分别是数据类型为DTL的PLC中的系

44、统时间和本地时间。 本地时间多8个小时。 3.7 字符串与字符指令字符串与字符指令3.7.1 字符串转换指令字符串转换指令 String数据类型的首字节是字符串的最大长度,第2个字节是当前实际使用的字符数,后面是最多254B的ASCII字符代码。此外还有宽字符串Wstring。 在DB1中生成3个字符串,数据类型为String18,最大长度18个字符。 “转换字符串”指令S_CONV用于字符串和数值的相互转换。STRG_VAL是“将字符串转换为数值”指令,VAL_STRG是“将数值转换为字符串”指令。 指令Strg_TO_Chars将字符串转换为字符元素组成的数组,指令Chars_TO_ St

45、rg将字符元素组成的数组转换为字符串。指令ATH将ASCII字符串转换为十六进制数,指令HTA将十六进制数转换为ASCII字符串。3.7.2 字符串指令字符串指令 LEN是“确定字符串的长度”指令,MAX_LEN是“确定字符串的最大长度指令”, CONCAT是“合并字符串”指令。 LEFT、RIGHT和MID指令分别用来读取字符串左边、右边和中间的字符。 DELETE、INSERT、REPLACE和FIND指令分别用来删除、插入、替换和查找字符。指令中的L用来定义字符个数,P是字符串中字符的位置。3.8 高速脉冲输出与高速计数器高速脉冲输出与高速计数器3.8.1 高速脉冲输出高速脉冲输出 1高

46、速脉冲输出高速脉冲输出 每个CPU有4个PTO/PWM发生器,通过DC输出的CPU集成的Q0.0Q0.3或信号板上的Q4.0Q4.3输出PTO或PWM脉冲。 脉冲宽度与脉冲周期之比称为占空比,脉冲列输出(PTO)功能提供占空比为50%的方波脉冲列输出。脉冲宽度调制(PWM)功能提供脉冲宽度可以用程序控制的脉冲列输出。 2PWM的组态的组态 项目“高速计数器与高速输出”用2DI/2DQ信号板输出高速脉冲。打开设备视图,选中CPU。选中巡视窗口的“属性 常规”选项卡,再选中左边的“PTO1/ PWM1”文件夹中的“常规”,用右边窗口的复选框启用该脉冲发生器。选中左边窗口的“参数分配”,设置信号类型

47、为PWM,“时基”为ms,“脉宽格式”为百分之一,用“循环时间”输入域设置脉冲周期为2ms,“初始脉冲宽度” 为50%。 选中左边窗口的“I/O地址”(见图3-77),右边窗口PWM1默认的的起始地址为1000。 3PWM的编程的编程 将指令列表的“扩展指令”选项板的文件夹“脉冲”中的“脉宽调制”指令CTRL_PWM拖放到OB1,单击出现的“调用选项”对话框中的“确定”按钮,生成该指令的背景数据块DB1。 单击参数PWM左边的问号,再单击出现的 按钮,用下拉式列表选中PWM1的硬件标识符“LocalPulse_1”,其值为9。EN为1状态时,用输入参数ENABLE(I0.4)来启动或停止脉冲发

48、生器。参数STATUS是状态代码。3.8.2 高速计数器高速计数器 高速计数器与增量式编码器一起工作。单通道增量式编码器内部只有1对光耦合器,只能产生一个脉冲列。双通道增量式编码器又称为A/B相或正交相位编码器,输出相位差为90的两组独立脉冲列。正转和反转时两路脉冲的超前、滞后关系相反,可以识别出转轴旋转的方向。 3高速计数器的功能高速计数器的功能 HSC有4种高速计数工作模式:有内部、外部方向控制的单相计数器,具有两路时钟脉冲输入的双相计数器和A/B相正交计数器。 每种HSC模式都可以使用或不使用复位输入。复位输入为1状态时,HSC的实际计数值被清除。 某些HSC模式可以选用 3 种频率测量

49、的周期来测量频率值。 使用“扩展高速计数器”指令CTRL_HSC_EXT,可以按指定的时间周期,测量出被测信号的周期。 4高速计数器的组态步骤高速计数器的组态步骤 1)选中设备视图中的CPU,选中巡视窗口的“属性”选项卡左边的高速计数器HSC1的“常规”,用复选框选中“启用该高速计数器”。 2)选中左边窗口的“功能”(见图3-82),设置“计数类型”为计数,“工作模式”为单相,“计数方向取决于”为“用户程序(内部方向控制)”,“初始计数方向”为“增计数”。 3)选中图3-83左边窗口的“复位为初始值”,设置“初始计数器值”为0,“初始参考值”为2000。 4)选中左边窗口的“事件组态”,用右边

50、窗口的复选框激活“计数器值等于参考值这一事件生成中断”。生成硬件中断组织块OB40后,将它指定给计数值等于参考值的中断事件。 5)选中左边窗口的“硬件输入”,在右边窗口可以看到该HSC使用的时钟发生器输入点为I0.0,最高频率为100kHz。 6)选中左边窗口的“I/O地址”,可以看到HSC1的起始地址为1000。 5设置数字量输入的输入滤波器的滤波时间设置数字量输入的输入滤波器的滤波时间 高速计数器的数字量输入点I0.0的滤波时间应小于计数输入脉冲宽度(1ms),故设置I0.0的输入滤波时间为0.8ms。3.8.3 高速脉冲输出与高速计数器实验高速脉冲输出与高速计数器实验 1实验的基本要求实

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(S7-1200-PLC编程及应用第三版-廖常初-课件-第3章.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|