资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第 十五 讲 控制功能指令,控制功能指令,程序控制指令用于对程序流转的控制,可以控制程序的结束、分支、循环、子程序或中断程序调用等。通过程序控制指令的合理应用,可以使程序结构灵活、层次分明,增强程序功能。,读转换开关位置指令,I/O,控制指令,主控继电器指令,跳转指令,循环指令,子程序,中断程序,转鼓指令,思考:,使用带参数的子程序实现一位数加法计算器计算结果的显示:,(,1)计算结果存放在%R00001中,数据类型为INT型;,(2)第一个数码管显示计算结果的十位数,第二个数码管显示计算结果的个位数。,分析:,DD,CC,BB,AA,数码管,显示,0,0,0,0,M10,0,0,0,1,M11,0,0,1,0,M12,0,0,1,1,M13,0,1,0,0,M14,0,1,0,1,M15,0,1,1,0,M16,0,1,1,1,M17,1,0,0,0,M18,1,0,0,1,M19,1、编写数字显示子程序,第一步:BCD译为一个位变量第二步:位变量译为数码管显示码,分析,:,0,1,2,3,4,5,6,7,8,9,输出,M10,M11,M12,M13,M14,M15,M16,M17,M18,M19,a,a,b,b,c,c,d,d,e,e,f,f,g,g,参考子程序:,参考主程序:,7.中断程序,1)由CPU产生,中断的时间间隔由用户指定。如果设定了初始延时,则在完成停止-运行转换并经过初始延时时间后,开始计算中断时间。,2)I/O中断由I/O模块发出,I/O中断用于指示离散输入状态的改变(上升沿/下降沿),模拟量范围限制(高/低报警)和高速计数器事件。,3)模块中断由VME模块产生。每个模块支持单个中断。,注意:,中断驱动块执行后能中断非中断驱动块的执行。如果正在中断的逻辑和已中断的逻辑访问相同的数据,会产生不可预期的错误。需要的话,在共享数据正在被访问时,服务请求程序,17 或服务请求程序32 可以临时屏蔽I/O 和定时中断程序的执行。,用于启动程序块的,3 种中断类型,中断设置,定时中断块第一次执行的时间为:,CPU 进入运行模式后(延时*时间基准)+(时间间隔*时间基准),时间基准,(Time Base),设定的时间间隔和延时的最小时间单元。时间基准可以设定为,1,秒,,0.1,秒和,0.001,秒,时间间隔,(Interval),设定值,*,时间基准后,得到的值为程序块两次执行的时间间隔,延时,(Delay),(,可选择,),设定值,*,时间基准后,得到的值为延时多长时间开始第一次执行程序块,1)定时中断:系统上电后定期执行的中断程序块,举例:,完成功能:,输出继电器,Q00001以1秒为周期通断。,思考:,主程序为如下梯形图时绘制Q00001的时序。并编程计算扫描周期,优先级程序块时序,优先级时序允许你为每一个触发指定一个优先级。优先级数值范围为,1-16,1优先级最高。单个模块可以有多个优先级不同的中断,也可以有多个优先级相同的中断。,将接收到的中断级别和正在执行的程序块的中断级别进行比较后,会按如下方式执行程序:,如果接收到的中断级别高于正在执行的程序块的中断级别,则停止执行当前程序块,转而执行和新收到的中断相关的程序块。,如果接收到的中断级别等同于正在执行的程序块的中断级别,则继续执行当前程序块。将新收到的中断放入队列中。,如果接收到的中断级别低于正在执行的程序块的中断级别,则将新收到的中断放入队列中。,返回,8.转鼓指令,Drum 功能块象机械转鼓排序一样。转鼓排序器在一组潜在输出位组之间移步,然后选择其中基于输入的一个进功能块。选择的值被复制到一组16 位离散的输出基准地址。,机械转鼓,转鼓指令操作数,功能,许用,操作数,描述,?,R,P,L,W,符号地址,(控制块)一个包含转鼓排序器控制块的5字数组的起始地址。控制块的内容将在下面叙述。,?,常数,(长度)步数的指定值,在1到 128之间。,?样本长度,S,流,步数输入端。用于正向顺序进入下一步。当功能块接收到能流,S 从 OFF 到 ON 跳变,转鼓排序器移动一步。当R激活,功能块忽略S。,R,流,复位输入端。用于选择指定顺序中的步数。当DRUM和 R都接收到能流,DRUM复制控制块中的预设步数到控制块的活动步地址里。然后,功能块复制预设步地址中的值到Q地址的位里。当R激活,功能块忽略S。,PTN,除常数和,S、SA-SC数字量数据之外的任何操作数。,(样本)字组的起始地址。字数由长度(?)操作数指定。每个字表示一步。对于控制块中活动步字的值表示设想的控制块中活动步的特值输出组合。第一个元素对应第一个活动步值,最后一个元素对应最后一个活动步值。程序软件不能自动生成字组,必须给PTN提供足够的内存空间。,转鼓指令操作数,功能,许用,操作数,描述,DRC,除了,S之外的任何操作数。,(Drum 线圈)只要功能块使能激活,活动步不等于预设步,DRC置位。,DTO,除了常数和,S之外的任何操作数。,停顿超时用,DTO操作数,也必须使用DT操作数,反之亦然。当前步的暂停时间一到,DTO被置位。,TFT,同上,(超时)如果使用TFT操作数,也必须使用FTT操作数,反之亦然。如果DRUM功能块在处于一个特殊步长于该步的故障暂停时间,TFT被置位。,FF,同上,(首位跟踪)存储器的(Length/8+1),字节,起始地址,这里的,Length就是步数。如果MOD(Length/8+1)0,FF有(Length/8+1)个字节。FF里,字节,的位每个位对应,PTN的一个字。只是FF里字节的位任何时候只有一个是ON,该位对应活动步的值。第一位对应活动步1的值,最后一个使用的位对应指定活动步的值。,转鼓指令控制块说明,Address,?,活动步,活动的值指定样本数组里的元素复制进输出存储单元。该值作为进入样本、暂停时间、故障超时、和首位跟踪操作数数组的索引使用。,可写,需预置,address+1,预设步,当R为ON 时,复制进活动步输出的一个输入字。,可写,需预置,address+2,步控制,用于检测 Step 输入和Enable 输入从OFF 到ON 跳变的一个字。步控制字留着供功能块专用,必须不被写进。,不可写,自动生成,address+3,定时器控制,两个数据字,用于保存运行定时器必须的值。定时器控制留着供功能块专用,必须不被写进,不可写,自动生成,例:,%R0100中放置控制块数据;,%R0200中为样本数据;,%R0300中为停顿超时数据;,%R0400中为故障超时数据。,思考:使用转鼓指令实现,,16位流水灯的显示。要求,16个灯依次亮。,例:点阵显示,控制要求:在,1616的点阵上显示“GE”,参考程序:,返回,思考:,关于三台电机启动停止的问题:,(,1)用一个点动按钮实现电机的启动和停止控制,即:第一次按动按钮,三台电机分别隔2秒顺序启动;第二按动按钮,三台电机分别隔2秒反序停止。,(2)第一次按动按钮,第一台电机启动;,第二次按动按钮,第二台电机启动;,第三次按动按钮,第三台电机启动;,第四次按动按钮,三台电机均停止;,(3)一次性按动按钮,第一台电机启动;,连续按动两次按钮,第二台电机启动;,连续按动三次按钮,第三台电机启动;,长时间按动按钮达5秒钟,三台电机均停止;,
展开阅读全文