1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,绪论,EXIT,绪论,第5章 S7-200的应用指令,第五章,S7,200,的应用指令,转换指令,中断指令,PID,回路指令,2025/12/12 周五,2,5.1,转换指令,5.1.1,数据类型转换指令,1,字节与整数,字节到整数,整数到字节,功能:,将字节型输入数据,IN,转换成整数类型,并将结果送到,OUT,输出。字节型是无符号的,所以没有符号扩展位。,数据类型:,输入为字节,输出为,INT,。,功能:,将整数输入数据,IN,转换成字节类型,并将结果送到,OUT,输出。,被转换的值应是有效的整数,否则溢出位,SM1.1,被
2、置位。,数据类型:,输入为,INT,,输出为字节。,3,2,整数与双整数,整数到双整数,双整数到整数,功能:,将整数输入数据,IN,转换成双整数类型(符号进行扩展),并将结果送到,OUT,输出。,数据类型:,输入为,INT,,输出为,DINT,。,功能:,将双整数输入数据,IN,转换成整数类型,并将结果送到,OUT,输出。,被转换的输入值应是有效的双字整数,否则溢出位:,SM1.1,被置位。,数据类型:,输入为,DINT,,输出为,INT,。,4,3,双整数与实数,实数到双整数,功能:,将实型输入数据,IN,转换成双整数类型,并将结果送到,OUT,输出。两条指令的区别是:前者小数部分四舍五入,
3、而后者小数部分直接舍去。,取整指令被转换的输入值应是有效的实数,如果实数太大,使输出无法表示,那么溢出位(,SM1.1,)被置位。,数据类型:,输入为,REAL,,输出为,DINT,。,5,双整数到实数,功能:,将双整数输入数据,IN,转换成实数类型,并将结果送到,OUT,输出。,数据类型:,输入为,DINT,,输出为,REAL,。,整数到实数,没有直接的整数到实数转换指令。转换时,先用,I_DI,(整数到双整数)指令,然后再使用,DI_R,(双整数到实数)指令即可。,6,4,、整数与,BCD,码,整数到,BCD,码,BCD,码到整数,功能:,将整数输入数据,IN,转换成,BCD,类型,并将结
4、果送到,OUT,输出。在,STL,中,,IN,和,OUT,使用相同的存储单元。,数据类型:,输入和输出均为字。输入数据,IN,的范围为,0,9999,。,功能:,将,BCD,输入数据,IN,转换成整数类型,并将结果送到,OUT,输出。在,STL,中,,IN,和,OUT,使用相同的存储单元。,数据类型:,输入和输出均为字。输入数据,IN,的范围为,0,9999,。,指令影响的特殊存储器位:,SM1.6,(非法,BCD,码)。,7,例,8,5.2,中断指令,5.2.1,中断事件,系统暂时中断现在正在执行的程序,转到中断服务程序去处理这些事件,处理完毕后果再返回原程序继续执行。,中断,表,5-2,中
5、断事件号及其优先级,能够用中断功能处理的特定事件称为中断事件,9,(,周期时间值写入,SMB34,),(周期时间值写入,SMB35,),10,5.2.2,中断指令,中断连接指令,中断分离指令,开中断及关中断指令,中断返回指令,中断子程序是随机发生且必须立即响应的事件。,能够用中断功能处理的特定事件称为中断事件。,中断与子程序的区别,11,1.,中断连接,2.,中断分离指令,功能:,连接某个中断事件(由中断事件号指定)所要调用的程序段(由中断程序指定)。,数据类型:,中断程序号,INT,和中断事件号,EVEN,均为字节型常数。,INT,数据范围为,0,127,。,EVNT,数据范围为,0,33,
6、功能:,切断一个中断事件和所有程序的联系。,数据类型:,中断事件号,EVEN,为字节型常数。,EVNT,数据范围为,0,33,。,中断程,序号,中断事件号,12,3.,开中断及关中断指令,功能:,开中指令(,ENI,),中断允许指令,全局性地启动全部中断事件。,关中断指令(,DISI,),中断禁止指令,全局性地关闭所有中断事件。,4,中断返回指令,功能:条件中断返回指令,可用于根据先前逻辑条件从中返回。,注:中断服务程序执行完毕后会自动返回。而,RETI,是条件中断返回,用在中断程序中间。,13,中断程序中,不能使用,:,全局中断禁止指令,DISI,全局中断允许指令,ENI,高速计数器指令
7、HDEF,顺序控制继电器指令,LSCR,有条件结束指令,END,。,14,5.2.3,中断程序示例,例,5-20,编程用中断实现对,100ms,定时计数。,本例选择定时中断,0,,查表,5-2,,可以得知定时,中断,0,的中断事件号为,10,,确定周期的特殊存储器字节是,SMB34,。,该程序主要包括以下几部分:,MAIN,:主程序。,SBR_0,:中断初始化子程序。,INT_0,:中断服务程序,。,15,16,5.3 PID,回路指令,5.3.1 PID,回路指令及转换,1,PID,回路指令,功能:,用回路表中的输入信息和组态信息,进行,PID,运算。,回路表起始地址,(,限,VB,区域,
8、回路号,(07),在程序中最多可以用,8,条,PID,指令。,不可重复使用同一个回路号,17,2.PID,算法,PID,调节是闭环模拟量控制中的传统调节方式,其控制的原理基于下面的方程式。,式中:,M(t),:,PID,回路的输出,是时间的函数,Kc,:,PID,回路的增益,e,:,PID,回路的偏差(给定值与过程变量之差),Mintial,:,PID,回路的初始值,输出,=,比例,+,积分,+,微分,输出,=,比例,+,积分,+,微分,将连续函数离散化,计算机处理后:,18,参 数,地址偏移量,数据格式,I/O,类型,描 述,过程变量当前值,PV,n,0,双字,实数,I,过程变量,,0.
9、0,1.0,给定值,SP,n,4,双字,实数,I,给定值,,0.,0,1.0,输出值,M,n,8,双字,实数,I/O,输出值,,0.,0,1.0,增益,K,c,12,双字,实数,I,比例常数,正、负,采样时间,T,s,16,双字,实数,I,单位为,s,,正数,积分时间,T,i,20,双字,实数,I,单位为分钟,正数,微分时间,T,d,24,双字,实数,I,单位为分钟,正数,积分项前值,MX,28,双字,实数,I/O,积分项前值,,0.,0,1.0,过程变量前值,PV,n-1,32,双字,实数,I/O,最近一次,PID,变量值,PID,回路表,进行,PID,运算的,9,个参数:,19,3.,回
10、路控制类型的选择,如果不需要比例回路,但需要积分或微分回路,可以把比例增益,Kc,设为,0.0,。,如果不需要积分回路,可以把积分时间,T,i,设为无穷大。即使没有积分作用,积分项还是不为零,因为有初值,MX,。,如果不需要微分回路,可以把微分时间,T,d,置为零。,实际工作中,使用最多的是,PI,调节器。,4.,回路输入的转换和标准,每个,PID,回路有,两个输入量,,即给定值,(,SP,:,常为固定值,),和过程变量,(,PV,:,与,PID,回路有关,)。,设定值及过程变量均为实际数值,在这些,实际数值可用于,PID,指令之前,,,必须将其转换成标准化的浮点型实数。,20,数值标准化,将
11、数值的实数表示转换成位于,0.0,1.0,之间的标准化数值。,转换公式,R,norm,=(R,raw,/Span)+Off,set,例:,/R 64000.0,,,AC0,/,累加器中的标准化值,R 0.5,,,AC0,/,加上偏值,使其在,0.0,1.0,之间,MOVR AC0,,,VD100,/,标准化的值存入回路表,R,norm,标准化的实数值;,R,raw,没有标准化的实数值或原值;,Off,set,单极性时为,0.0,,双极性时为,0.5,;,S,pan,值域,即可能的的最大值减去可能的最小值,单极性为,3200,,双极性为,6400,实际数值转换成实数,ITD AIW0,,,AC0
12、/,将输入值转换为双整数,DTR AC0,,,AC0,/,将,32,位双整数转换为实数,转换步骤:,21,5,回路输出值转换成刻度整数值,PID,运算的,输出值是,0.01.0,之间,的标准化了的,实数值,。,在输出变量传送给,D/A,模拟量单元之前,必须把回路输出变量转换成相应的,16,位整数。,是实数值标准化的逆过程:,标准化的实数值(,0.00.1,),REAL INT,把回路输出转换成相应的实数值,转换公式:,Rscal=(Mn-Offset)Span,例:,MOVR VD108,,,AC0,/,把回路的输出值移入累加器,R 0.5,,,AC0,/,仅双极性有此句,R 64000.0
13、AC0,/,在累加器中得到刻度,值,式中:,R,scal,回路输出的刻度实数值;,M,n,回路输出的标准化实数值;,Off,set,值域,单极性时为,0.0,,双极性时为,0.5,;,S,pan,值域,即可能的的最大值减去可能的最小值,单极性为,3200,,双极性为,6400,。,把回路输出的刻度转换成,16,位整数,RORND AC0,,,AC0,/,把实数转换为,32,位整数,DTI AC0,,,LW0,/,把,32,位整数转换为,16,整数,MOVW LW0,,,AQW0,/,把,16,位整数写入模拟输出寄存器,22,水箱由水泵供水,维持水箱的水位(,0.75,),%,控制水泵速度
14、维持,0.75%,水位,变化的,速度,v,变化的,速度,v,5.3.2 PID,编程举例,23,分 析:,给定值,是水箱满水位的,75%,时的水位,(,0.75,),过程变量,由水位测量仪(,A/D),提供(单极性),输出值,用来控制水泵的速度,是最大允许值的,0%100%,(0.01.0),(单极性),本系统采用比例和积分控制电路(,PI,),初步确定下列,控制参数值:,K,c,=0.25,,,T,s,=0.1s,,,T,i,=30min,,,T,d,=0,。,24,该程序主要包括以下几部分:,MAIN,:主程序,SBR_0,:回路表初始化子程序,INT_0,:中断程序,I0.0,控制手动到自动的切换:,0,代表手动,;,1,代表自动,。,25,26,27,28,1,用循环移位指令设计一个彩灯控制程序,,8,路彩灯串按,H1H2H3H8,的顺序依次点亮,且不断重复循环。各路彩灯之间的间隔时间为,0.1s,。,2,用定时中断设置一个每,0.1s,采集一次模拟量输入值的控制程。,思考与练习,29,






