文档详情

S7-200功能指令表全集

re****.1
实名认证
店铺
PPT
1.98MB
约98页
文档ID:590680474
S7-200功能指令表全集_第1页
1/98

第七章第七章 S7-200PLC功能指令功能指令l传送指令 l数学运算指令 l逻辑运算指令 l移位和循环移位指令 l数据转换指令l表功能指令l程序控制指令 l中断指令 lPID回路指令l高速计数器指令 l高速脉冲输出指令 l时钟指令 功能指令 数据类型l功能指令涉及的数据类型多,编程时应保证操作数在合法范围内lS7-200PLC不支持完全数据类型检查l操作数的数据类型应与指令标识符相数据类型应与指令标识符相匹配匹配 一、传送指令一、传送指令 数据传送指令 数据块传送指令 传送字节立即读、写指令 ((一)一)数据传送指令数据传送指令 把输入(IN)指定的数据传送到输 出(OUT),传送过程中数据值保 持不变输入输出 数据传送指令按操作数的数据类型可分为:数据传送指令按操作数的数据类型可分为: 操作数可操作数可为有符号为有符号数或无符数或无符号数号数 字节传字节传送送((MOVBMOVB))字传送字传送((MOVWMOVW))双字传送双字传送((MOVDWMOVDW))实数传送实数传送((MOVRMOVR))l数据类型应与指令标识符相匹配数据类型应与指令标识符相匹配 自 学l数据块传送指令 (操作数均为为无符号数)l传送字节立即读、写指令 (物理输入、输出点 ) 二、数学运算指令二、数学运算指令 l四则运算指令 l数学功能指令 (一)四则运算指令(一)四则运算指令 l加法指令 l减法指令 l乘法指令 l除法指令 1.加法指令加法指令 把两个输入端(IN1,IN2)指定的数相加,结果送到输出端(OUT)指定的存储单元中。

输入端输入端输出端输出端整数加法指令整数加法指令 整数、双整数、实数加法指令整数、双整数、实数加法指令 对应的操作数数据类型:对应的操作数数据类型: 有符号整数(INT) 有符号双整数(DINT) 实数(REAL) 整数加法 双整数加法 实数加法 加法指令的操作 操作数IN2与OUT共用一个地址单元 操作:IN1+OUT=OUTIN1+OUT=OUT 2.减法指令 把两个输入端(把两个输入端(IN1IN1,,IN2IN2))指定的指定的数相减,结果送到输出数相减,结果送到输出((OUTOUT))指定的存指定的存储单元中去储单元中去 输出端输入端 整数、双整数、实数减法指令整数、双整数、实数减法指令对应的操作数: 有符号整数(有符号整数(INTINT)) 有符号双整数(有符号双整数(DINTDINT)) 实数(实数(REALREAL)) 整数减法 双整数减法 实数减法 减法指令的操作操作数IN1与OUT共用一个地址单元操作:OUT-IN2=OUT OUT- IN2 =OUT 3.乘法指令 操作数的数据类型:操作数的数据类型:l有符号整数(INT)l有符号双整数(DITN)l实数(REAL) 整数乘法整数乘法 双整数乘法双整数乘法 实数乘法实数乘法 整数完全乘法整数完全乘法 操作数IN2与OUT共用一个地址单元IN1×OUT=OUT 把两个输入端(IN1,IN2)指定的数相乘,结果送到输出端(OUT)指定的存储单元中去SM1.1指示溢出错误和非法数值指示溢出错误和非法数值 整数完全乘法指令 操作数IN2与OUT的低16位用的是同地址单元1616bitbit有符有符号整数号整数32bit的乘积IN1×OUT=OUTVD200IN1(16bit) ×IN2(16bit) =32(bit)乘积 (OUT) 4.除法指令 操作数的数据类型:操作数的数据类型: 有符号整数(有符号整数(INT)) 有符号双整数(有符号双整数(DINT)) 实数(实数(REAL)) 操作数操作数IN1与与OUT共共用一个地址单元用一个地址单元OUT/IN2=OUT 整数除法整数除法 双整数除法双整数除法 实数除法实数除法 整数完全除法整数完全除法 把两个输入端(IN1,IN2)指定的数相除,结果送到输出端(OUT)指定的存储单元中去。

整数完全除法指令 操作数IN1与OUT的低16位用的是同地址单元VD30032bit的结果 OUT/ IN2 =OUT1616bitbit有符有符号整数号整数余数商IN1(16bit) ÷IN2(16bit) =32(bit)结果 (OUT) 四则运算举例 IN1与OUT不是同一地址单元加法、减法、乘法指令遇到上述情况,也可作类似的处理 5.加1和减1指令 操作数的数据类型操作数的数据类型: 字节、字、双字VB100VB100IN和OUT共用一个地址单元 INCW OUTINCD OUT (二二)数学功能指令数学功能指令l平方根l自然对数l自然指数l三角函数 l操作数均为实数实数(REAL)自自学学 三、逻辑运算指令(自学)三、逻辑运算指令(自学) 逻辑“与”指令 逻辑“或”指令 逻辑“异或”指令 取反指令 逻辑运算指令的操作数均为逻辑运算指令的操作数均为无符号数无符号数自学自学对两个输入端(IN1,IN2)的数据按位“与”,结果存入OUT单元 ORD IN1,OUT 四、移位和循环移位指令 右移位指令 左移位指令 循环右移指令 循环左移指令 移位和循环移位指令均为无符号数操作 1.右移位指令 l把输入端(IN)指定的数据右移N位,结果存入OUT。

l多位操作多位操作字节右移 字右移 双字右移 字节、字、双字移位指令的实际最大可移位数: 8、16、32空位自动补零溢出SM1.1移位后溢出位(SM1.1)的值就是最后一次移出的位值 2.左移位指令 字节左移字节左移 字左移字左移 双字左移双字左移 自学 3.循环右移指令 字节循环右移字节循环右移 字循环右移字循环右移双字循环右移双字循环右移 SM1.1溢出位把输入端(IN)指定的数据循环右移N位,结果存入OUT 字节、字、双字循环移位指令的实际移动位数 字节、字、双字循环移位指令,如果所需移位次数N大于或等于8、16、32,那么在执行循环移位前,先对先对N取以取以8、、16、、32为底的模为底的模,其结果0~7、0~15、0~31为实际移动位数 4.循环左移指令 字节循环左移字节循环左移 字循环左移字循环左移 双字循环左移双字循环左移 自学 移位和循环移位 五、数据转换指令(自学) lBCD码与整数的转换 l双字整数与实数的转换 l双字整数与整数的转换 l字节与整数的转换 l译码、编码指令 l段码(SEG)指令 均为无符号数操作 1.BCD码与整数的转换BCD BINBIN BCD 0~99990~9999 2.双字整数与实数的转换 32bit →32bitDINT → REAL REAL → DINT REAL → DINT +101 → +101.0 256.54 → 257256.54 → 256有效的实数 有效的实数 3.双字整数与整数的转换有效的双字整数 进行符号扩展 DINT INTINT DINT符号扩展: ORD 16#FFFF_0000, VD100 ★整数转换为实数 l ITD DTRlINT → DINT → REAL 4.字节与整数的转换有效的整数 转换指令编程举例IN2与OUT不是同一地址注意!注意!注意!注意! 自 学l5.译码、编码指令l6.段码(SEG)指令 六、表功能指令(自学)六、表功能指令(自学)l填表、查表指令l先进先出、后进先出指令l存储器填充指令存储器填充指令执行FILL指令后,VW400~VW418的区域被清零。

自自学学用输入值(IN)填充从输出单元(OUT)开始的N个字的内容 七、中断指令七、中断指令 l全局中断允许/全局中断禁止指令 l中断连接/中断分离指令 l中断返回指令 l中断的分类:通讯、时基和输入/输出 l中断优先级 对特定的事件作快速响应 处理后返回原程序中断指令使系统暂时中断现在正在执行的程序,而转到中断服务程序去处理那些急需处理的事件 中断的分类 l通讯口中断:自由口通讯 lI/O中断 l时基中断 :定时中断和定时器中断 中断事件号中断事件号 中断队列溢出位l中断队列溢出位:说明(0 = 无溢出,1 = 溢出)SM位l通讯队列SM4.0lI/O中断队列 SM4.1l定时中断队列SM4.2 (一)全局中断允许、全局中断禁止指令 执行DISI指令后,出现的中断事件就进入中断队伍排队等候,直到全局中断允许指令(ENI)重新允许中断全局地允许所有被连接的中断事件 全局地禁止处理所有中断事件 CPU进入RUN模式时自动禁止了中断在RUN模式执行全局中断允许指令(ENI)后,允许所有中断 (二)中断连接指令、中断分离指令●●用来建立某个中断事用来建立某个中断事件(件(EVNTEVNT))和某个中断和某个中断程序(程序(INTINT))之间的联之间的联系。

系●●并允许这个中断事件并允许这个中断事件●●该中断事件发生时执该中断事件发生时执行相关的中断程序行相关的中断程序 中断连接指令中断连接指令中断连接指令中断连接指令((((ATCHATCHATCHATCH)))) 中断事件 中断程序 多 个 中 断事件可调用同一个中断程序一个中断事件不能同时与多个中断程序建立连接,否则,系统默认执行这些中断程序中的最后一个 中断分离指令中断分离指令((DTCH))截断某中断事件和中断程序之间的联系单独单独禁止某中断事件 (三) 中断返回指令 有条件中断返回指有条件中断返回指令令((CRETICRETI)),,根根据控制的条件从中据控制的条件从中断程序中返回到主断程序中返回到主程序程序中断程中断程序入口序入口 编程软件自动编程软件自动在中断程序结在中断程序结尾加上无条件尾加上无条件中断返回指令中断返回指令((RETIRETI)) 优化中断程序优化中断程序 中断处理提供了对特殊的内部或外部事件的快速响应优化中断程序:优化中断程序:l使其简短,减少中断程序的执行时间l在执行某特殊的任务后立即返回主程序,否则有可能引起主程序控制设备的异常操作。

中断程序中不能使用:l全局中断禁止指令DISIl全局中断允许指令ENIl高速计数器指令HDEFl顺序控制继电器指令LSCRl有条件结束指令END (四)时基中断l定时中断l定时器中断 定时中断按指定的周期按指定的周期时间循环执行时间循环执行必须用必须用ATCH指指令,令,建立中断程建立中断程序与定时中断事序与定时中断事件的连接件的连接 定时中断的周期时间定时中断的周期时间l周期增量周期增量::1 1msms ,周期时间,周期时间::1 1~~255ms255msl定时中断0/1的周期时间 SMB34/35l改变周期时间:修改SMB34/35中的值,必须重新建立中断程序与定时中断事件的连接 定时中断事件 中断程序l当定时中断设定的周期时间到,即定时中断事件(10/11)发生,则执行相应的中断程序l定时中断一旦允许就连续地运行,按指定的时间间隔反复执行被连接的中断程序 定时中断事件 中断程序(续)l常用定时中断以固定的时间间隔去控制模拟量的采集和执行PID回路程序l如果退出RUN模式或分离定时中断,则定时中断被禁止 定时器中断l定时器定时器T32/T96中断允许对指定时间间隔完成中断允许对指定时间间隔完成及时作出应答。

仅在及时作出应答仅在1毫秒分辨率毫秒分辨率接通延时接通延时((TON)和断开延时()和断开延时(TOF)定时器)定时器T32和和T96中支持此类中断中支持此类中断l用中断例行程序附加至用中断例行程序附加至T32/T96中断事件(中断事件(事事件号件号20/25)的方法,启用此类中断的方法,启用此类中断 lT32和和T96中断被启用后,在中断被启用后,在S7-200中执行的正中执行的正常常1毫秒定时器更新的过程中,毫秒定时器更新的过程中,当现用定时器当现用定时器的当前值等于预设时间数值时,即执行中断连的当前值等于预设时间数值时,即执行中断连接例行程序接例行程序 (五)中断优先级(五)中断优先级 l通讯(最高)(最高)lI/O中断(中等)(中等)l时基中断(最低)(最低) 八、八、PID回路指令(自学)回路指令(自学) lPID算法 lPID回路指令 l控制方式 l回路输入输出变量的数值转换 l变量和范围 l选择回路控制类型 l出错条件 lPID指令编程举例 (一一)PID算法算法 PIDPID控控制制器器调调节节回回路路输输出出为为使使系系统统达达到到稳稳定定状状态,应让偏差(态,应让偏差(e e))趋于零。

趋于零l偏差(e)= 给定值(SP)-过程变量(PV)l回路的输出变量M(t): 比例项 积分项 微分项lM(t)——PID回路的输出lKC——PID回路的增益le——PID回路的偏差lMinitial——PID回路输出的初始值时间t的函数 将连续函数离散化 lMn——在第n采样时刻PID回路输出的计算值;lKC——PID回路增益;len——在第n采样时刻的偏差值;len-1——在第n-1采样时刻的偏差值(偏差前值);lKI——积分项的系数;lMinitial——PID回路输出的初值;lKD——微分项的系数 积分项:包括从第1个采样周期到当前采样周期的所有误差的累积值积分项积分项 积分项积分项 计算中,只需保留积分项前值(MX),即: 比例项、积分项、微分项l比例项 MPn=KC·(SPn­PVn­)l积分项 MIn= KC·TS / T1·(SPn­PVn)+MXl微分项 MDn=KC·TD / TS·(PVn­1­PVn)9个参数个参数KIKD 进行进行PID运算的运算的9个参数:个参数:l过程变量当前值 PVnl给定值 SPnl增益 KC l采样时间 TS l积分时间 TIl微分时间 TDl积分项前值 MX l过程变量前值 PVn­1 l输出值 Mn (二(二))PID回路指令回路指令 lPID回路指令运用回路表中的输入信息和组态信息,进行PID运算,编程极其简便。

组态编程,即填表式编程)(组态编程,即填表式编程) 回路回路号号0~70~7回路表的回路表的起始地址起始地址限用限用VBVB区区域域 进行PID运算的前提条件l在程序中最多可以用8条PID指令l不可重复使用同一个回路号逻辑堆栈栈顶(TOS)值必须为11 回路表格式 VB10036个个字节字节 9个个参数参数***** 周期地进行PID运算★以一定的采样频率进行PID运算★PIDPID指令必须编入定时发生的中断程指令必须编入定时发生的中断程序中序中★★在主程序中由定时器控制在主程序中由定时器控制PIDPID指令的指令的执行频率执行频率 (三)控制方式 当允许输入端(EN)检测到一个正跳变信号,PID回路就从手动方式无扰动地切换到自动方式无扰动无扰动切换切换自动自动手动手动 无扰动切换无扰动切换时:l系统把手动方式的当前输出值填入回路系统把手动方式的当前输出值填入回路表中的表中的MMn n栏,用来初始化输出值栏,用来初始化输出值MMn n;;l进行一系列的操作,对回路表中的值进进行一系列的操作,对回路表中的值进行组态:行组态:l置给定值(置给定值(SPSPn n))= = 过程变量(过程变量(PVPVn n))l置置过过程程变变量量前前值值((PVPVn-1n-1))= = 过过程程变变量量当当前值前值((PVPVn n))l置积分项前值(置积分项前值(MXMX))= = 输出值(输出值(MMn n)) 无正跳变信号时l若若PIDPID指令的允许输入端(指令的允许输入端(ENEN))直接接至直接接至左母线,在启动左母线,在启动CPUCPU或或CPUCPU从从STOPSTOP方式转方式转换到换到RUNRUN方式时,方式时,PIDPID允许输入端(允许输入端(ENEN))的默认值是的默认值是1 1,可以执行,可以执行PIDPID指令;指令;l但无正跳变信号,因而不能实现无扰动的但无正跳变信号,因而不能实现无扰动的切换。

切换无扰无扰动切动切换换无正跳无正跳变信号变信号 (四)回路输入输出变量的数值转换 l回路输入变量的转换和标准化 l回路输出变量的数据转换 1.回路输入变量的转换和标准化.回路输入变量的转换和标准化 执行PID指令前必须把给定值和过程变量转换成标准的浮点型实数 将过程变量PVn 输入值标准化为(0.0~0.1)的实数,填入表中(VD100): INT → REAL → (0.0~0.1)AIW0过程变量 (1)回路输入变量的数据转换INT → REALINT → REAL XORD AC0,AC0, 清空累加器MOVW AIW0,AC0, 把待变换的AIW0的模拟量 (INT)存入累加器LDW>= AC0,0 如果模拟量为正JMP 0 则直接转成实数NOT 否则ORD 16#FFFF0000,AC0 先对AC0中的值进行 符号扩展LBL 0ITD AC0,AC0 把16位整数转换成双字整数DTR AC0,AC0 把双字整数转成实数 (2) 实数值的标准化 REAL →→ (0.0~0.1) 实数标准化的公式: RNorm=((RRaw / Span+ Offset))lRNorm是标准化的实数值;lRraw是未标准化的实数值;lOffset是补偿值或偏置,单极性为0.0,双极性为0.5;lSpan是值域大小,为最大允许值减去最小允许值,单极性为32,000(典型值)双极性为64,000(典型值)。

双极性实数标准化的程序:RNorm=((RRaw / Span+ Offset))/R 64000.0,,AC0 累加器中的实数值除以64000.0+R 0.5,,AC0 加上偏置,使其落在0.0~1.0之间MOVR AC0,VD100((过程变量过程变量PVn)) 标准化的实数值存入回路表 2.回路输出变量的数据转换 lPID运算的输出值是0.0~1.0之间的标准化了的实数值l在输出变量传送给D/A模拟量单元之前,必须把回路输出变量转换成相应的16位整数l是实数值标准化的逆过程: 标准化的实数值(标准化的实数值(0.0~0.1))→REAL → INT (1)回路输出变量的刻度化 标准化的实数值(标准化的实数值(0.0~0.1))→REAL 标准化实数转换成实数的公式: RScal=((Mn-Offset))·SpanlRScal是回路输出的刻度实数值lMn是回路输出的标准化实数值lOffset、Span定义同前 回路输出变量的刻度化的程序: RScal=((Mn-Offset))·SpanlMOVRVD108,,AC0 把(Mn)移入累加器l-R0.5,,AC0 对双极性,0ffset为0.5l*R64000.0,,AC0 得输出变量的刻度值(REAL) (2)将实数转换为16位整数(INT) REAL →→ INT lROUND AC0 AC0 REAL →DINTREAL →DINT lDTI AC0,AC0 DINT →INTDINT →INT lMOVW AC0,AQW0 INT → INT → AQW0 D/A l(五)变量和范围l(六)选择回路控制类型l(七)出错条件 (八)PID指令编程举例 l水箱由水泵供水 l维持水箱的水位( 0.75)l控制水泵速度 维持0.75水位变化的速度v变化的速度v 分 析l给定值给定值是水箱满水位的75%时的水位 (0.75)l过程变量过程变量由水位测量仪(A/D)提供 (单极性)l输出值输出值用来控制水泵的速度是最大允许值的 0%~100%(0.0~1.0) (单极性) 选择比例和积分控制l其回路增益和时间常数可以通过 工程计算初步确定。

l进一步调整以达到最优控制效果l初步确定的回路增益和时间常数: KC=0.25 TS=0.1秒,秒, T1=30分钟分钟 TD=0 手动方式l启动时关闭出水口l打开控制开关(编址I0.0)l用手动方式控制水泵速度l使水位达到满水位的75% 手动方式 自动方式控制开关l自动方式:自动方式:l打开出水口,l合上控制开关(I0.0)l水泵控制从手动方式切换到自动方式(无扰动切换) 水箱水位水箱水位PIDPID控制程序控制程序 MAIN调用初始化子程序 SBR_0lSPnlKClTSlTIlTD填入5个参数,设置定时中断 INT_0AIW0:INT→DINT→REAL→(0.0-0.1)→VD100 执行PID指令 无扰动切换 :Mn、SPn、PVn-1、MX ⑥⑦⑧⑨ INT_0 (续)Mn (0.0-0.1)→刻度化(REAL)→DINT→INT→AQW0 PID指令的编程方法总结指令的编程方法总结 1.优化程序结构:.优化程序结构: 采用主程序、子程序、中断程序的结构形式2.子程序:.子程序:l组态编程:将5个参数(SPn、KC、TS、TI、TD)填入回路表l设置定时中断,以便周期地执行PID指令。

PID指令的编程方法总结(续)3 3.中断程序.中断程序l将由A/D模块提供的过程变量(PVn)转换成标准化的实数(0.0~1.0)并填入回路表l设置PID指令的无扰动切换的条件(例I0.0)l执行PID指令,使系统由手动方式无扰动地切换到自动方式l将参数Mn、SPn、PVn-1、MX先后填入回路表,完成回路表的组态编程l周期地执行PID指令l将PID运算输出的标准化实数值(Mn)→刻度化→INT→ A/D模块,以实现对外部设备的控制 自自 学学l十、高速计数器指令l十一、高速脉冲输出指令十一、高速脉冲输出指令l十二、时钟指令十二、时钟指令 补充:库的使用l库:把一些常用的功能程序作为一组件使用l两种不同类型的库:l西门子(Siemens)公司提供的库(USS协议和Modbus协议)l用户定义的库 补充:库的使用lUSS协议:支持MicroMaster 3(MM3)和Micromaster 4(MM4)驱动器通讯与变频器通讯常用)lModbus协议:用于与Modbus主站通讯 。

下载提示
相似文档
正为您匹配相似的精品文档