您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > S7-200编程实例[1]
昆山科瑞艾特电气有限公司-专注于直流调速器,变频器,PLC等自动化产品的销售与服务!H附录H:S7-200应用示例本章概述节内容页H.1模拟电位器H–2H.2怎样使用高速计数器H–6H.3自由通信口模式的简单应用H–10H.4处理脉宽调制H–13H.5可逆电动机起动器电路――适用于改变三相交流感应电动机旋转方向H–16H.6步执行顺序(事件鼓定时器)H–19H.7S7-200用自由通信口模式和并行打印机连接H–23H.8通过自由通信口模式接受条形码阅读器的信息H–27H.9集成脉冲输出通过步进电机进行定位控制H–31H.10SIMATICS7-221通过自由通信口模式控制贺氏(Hayes)调制解调器H–37H.11几台SIMATICS7-200PLC使用自由通信口模式连接在一个远程I/O网络上H–43H.12S7-224与SIMOVERT电机驱动器之间的自由通信口通信接口H-54H.13用S7-200CPU224DC/DC/DC进行定位控制,并具有位置监视和位置校正H-64H.14用S7-200实现PID控制H-80H.15模拟量输入的处理H-92H.16S7-200与PC之间的连接:从Windows应用程序中读数据H-98免费资料下载:的模拟电位器(POT)的使用信息。电位器的位置转换为0至255之间的数字值,然后,存入两个特殊存储器字节SMB28和SMB29中,分别对应电位器0和电位器1的值。需要一把小螺丝刀用以调整电位器的位置。本应用示例介绍了使用模拟电位器调整定时器设定值的三种方案。例图模拟电位器H-2昆山科瑞艾特电气有限公司-专注于直流调速器,变频器,PLC等自动化产品的销售与服务!程序框图免费资料下载:到时后:AC2加1QB0显示T35复位T33到时后:AC2加1QB0显示T33复位T35到时后:VW20加1QB1显示T34复位主程序结束10.110.2(与非10.0)新平均值存入VW14、16、18子程序2开始扫描计数器加1加POT1值到以前总和中计算平均值,扫描计数器复位100次扫描完成了吗?新平均值在保护段之外吗?将新的模拟电位器值送回到VW18设置新保护段子程序2结束否否是是10.0否AC1清零POT0值传给AC1换算POT0值加200ms偏移量AC1值传给VW0子程序1结束POT0变吗?子程序1开始程序和注释方案1说明了用模拟电位器对定时器设定值进行细调的方法。首先通过程序中的偏移量(本例中为20ms)对定时器进行粗调,然后再用电位器能把定时器的设定值精确地调整到满意的设置。每个定时器周期之后,执行子程序1中的指令,把POT0的值(在SMB28中)读到AC1,除以2,再加上200ms偏移量。返回主程序时,AC2中的定时器循环计数值加1,并拷贝到输出字节(QB0),以供显示。在方案2中,对电位器1(POT1)的100次扫描值在AC3中累加后并取平均,再存入VW12。如果该值低于低保护限值VW14,或高于高保护限值VW16(两者均在首次扫描时初始化),则将新值VW12拷贝到VW14、VW16和VW18中。然后再分别对VW16和VW14的值减、加3ms,作为新限值,而VW18中的平均值被传回主程序作为定时器T34的设定值。返回主程序时,VW20中的定时器循环计数值加1,并拷贝到输出字节(QB1),以供显示。在方案3中,把电位器0(POT0)的值直接作为定时器T35的设定值,AC2中的定时器循环计数值加1,并拷贝到输出字节(QB0),以供显示。S7-200应用示例本程序长度为110个字。//标题:模拟电位器://***************主程序***************//这是S7-200的一个演示程序,介绍了使用模拟电位器调整定时器设定值的三种方案。//方案1:对来自POT0的值进行换算并加偏移量,以调整定时器的设定值,可以从200ms调到的1.48s。每个定时器周期QB0加1。//方案2:从POT1来的值经过滤波给定时器提供0ms到约2.55s的稳定的设定值。每个定时器周期QB1加1。//方案3:把POT0的值直接作为定时器设定值。每个定时器周期QB0加1。//模拟电位器POT0和POT1的值可以分别从SMB28和SMB29中以一个字节读出。//每次扫描时,POT的值会变化一点,方案1和2都能为定时器提供稳定的设定值。//方案1的设定值会改变1次或2次,但每个定时器周期只装载一次。//方案2的设定值非常稳定,每次扫描都装载。//方案3的设定值每次扫描都会改变。//主程序:LDSM0.1//首次扫描时清除工作缓冲区:MOVD+0,AC0//AC0=0。MOVD+0,AC3//AC3=0。MOVW+0,VW10//VW10=0。MOVW+32000,VW14//低限工作区复位。MOVW+0,VW16//高限工作区复位。//方案1://每次扫描时POT的值会改变一点。//下面的指令用来在每个定时器周期捕获一次换算后的值,并提供一个稳定的定时器设定值。LDI0.0//如果输入I0.0为1状态,则选方案1。TONT33,VW0//POT0的值经运算后作为T33的设定值。CALL1//调用子程序1对POT0的值进行换算并加偏移量。LDT33//若T33计时到,INCWAC2//则AC2加1,即定时器循环计数。MOVBAC2,QB0//把AC2的昀低有效字节拷贝到输出字节QB0,以供显示。RT33,1//定时器T33复位。//方案2:LDI0.1//如果输入I0.1为1状态,则选方案2。CALL2//调用子程序2,对POT1的值进行滤波运算后存入VW18。TONT34,VW18//VW18的值作为T34的设定值。LDT34//若T34计时到,INCWVW20//则VW20加1,即定时器循环计数。MOVBVB21,QB1//把VW20昀低有效字节(VB21)拷贝到输出字节QB1,以供显示。RT34,1//定时器T34复位H-4昆山科瑞艾特电气有限公司-专注于直流调速器,变频器,PLC等自动化产品的销售与服务!//方案3:LDI0.2//如果输入I0.2为1状态,ANI0.0//且方案1不在运行(I0.0=0),则选方案3。MOVW0,AC1//清除累加器1(AC1)MOVBSMB28,AC1//送POT0的值到AC1。TONT35,AC1//POT0的值作为T35的设定值。LDT35//若T35计时到,INCWAC2//则AC2加1,即定时器循环计数。MOVBAC2,QB0//把AC2昀低有效字节拷贝到输出字节QB0,以供显示。RT35,1//定时器T35复位。MEND//主程序结束//方案1的子程序SBR1//子程序1。//换算POT0的值并加上偏移量后存在VW0中,再返回主程序。LDT33//每个定时器周期检查POT0的变化。MOVW0,AC1//清除累加器1(AC1)。MOVBSMB28,AC1//送POT0的值给AC1。DIV2,AC1//AC1除2,即把POT0的输入范围从0~255换算成0~127。+120,AC1//加200ms偏移量。MOVWAC1,VW0//把AC1值拷贝到VW0,以便能让程序员读取。RET//子程序1结束。//方案2的子程序SBR2//子程序2。//对POT1值采样100次,然后求平均值。INCWVW10//扫描计数器加1。MOVBSMB29,AC0//送POT1的值到AC0。+1AC0,AC3//再加到以前的总和中(即累加POT1的值,共累加100次)。LDWVW10,100//100次扫描之后。DIV100,AC3//求平均值。MOVWAC3,VW12//存平均值。MOVW0,VW10//扫描计数器复位。MOVD0,AC3//工作内存复位。AW=VW12,VW14//检查新的平均值是否在保护区之外。OW=VW12,VW16//FILLVW12,VW14,3//把新的平均值存入VW14,VW16,VW18。-1+3,VW14//设置新的低保护限。+1+3,VW16//设置新的高保护限。免费资料下载:的滤波值存在VW18中,返回主程序S7-200应用示例H.2怎样使用高速计数器概述本例叙述SIMATICS7-200的高速计数器(HSC)的一种组态功能。对来自传感性(如编码器)信号的处理,高速计数器可采用多种不同的组态功能。本例用脉冲输出(PLS)来为HSC产生高速计数信号,PLS可以产生脉冲串和脉宽调制信号,例如用来控制伺服电机。既然利用脉冲输出,必须选用CPU224DC/DC/DC。下面这个例子,展示了用HSC和脉冲输出构成一个简单的反馈回路,怎样编制一个程序来实现反馈功能。例图224高速计数器输入H-6昆山科瑞艾特电气有限公司-专注于直流调速器,变频器,PLC等自动化产品的销售与服务!程序框图………….INT2:第三次设定值INT1INT0INT2………….………….100015001000子程序1:起动HSC0主程序子程序0:初始化,起动PLSINT0:第一次设定值INT1:第二次设定值在脉冲序列末程序停止程序和注释本例描述了S7-200DC/DC/DC的高速计数器(HSC)的功能。HSC计数速度比PLC扫描时间快得多,采用集成在CPU224中的20K硬件计数器进行计数。总的来说,每个高速计数器需要10个字节内存用来存控制位、当前值、设定值、状态位。本程序长度为91个字。//主程序://在主程序中,首先将输出Q0.0置,0,因为这是脉冲输出功能的需要。再初始化高速计//数器HSC0,然后调用子程序0和1。//HSC0起动后具有下列特性:可更新CV和PV值,正向计数。//当脉冲输出数达到SMD72中规定的个数后,程序就终止。//主程序LDSM0.1//首次扫描标志(SM0.1=1)。RQ0.0,1//脉冲输出Q0.0复位(Q0.0=0)。MOVB16#F8,SMB37//装载HSC0的控制位://激活HSC0,可更新CV,可更新PV,//可改变方向,正向计数。//HSC指令用这些控制位来组态HSC。MOVD0,SMD38//HSC0当前值(CV)为0。免费资料下载:,SMD42//HSC0的第一次设定值(PV)为1000。HDEF0,0//HSC0定为模式0。CALL0//调用子程序0。CALL1//调用子程序1。MEND//主程序结束。//********************//子程序0://子程序0初始化,并激活脉冲输出(PLS)。//在特殊存储字节SMB67中定义脉冲输出特性:脉冲串(PT0),时基,可更新数值,激活PLS。//SMW68定义脉冲周期,其值为时基的倍数。//昀后,在SMD72中指定需要产生的脉冲数。(SMD72)为内存双字,即4个字节)。//子程序0SBR0//子程序0MOVB16#8D,SMB67//装载脉冲输出(PLS0)的控制位:PT0,时基1ms,可更新,激活。MOVW1,SMW68//脉冲周期1ms。MOVD30000,SMD72//产生30000个脉冲。PLS0//起动脉冲输出(PLS0),从输出端Q0.0输出脉冲。RET//子程序0结束。//**********
本文标题:S7-200编程实例[1]
链接地址:https://www.777doc.com/doc-4946662 .html