版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
竞赛抢答器的PLC
设计项目四目录CONTNETS任务4.1竞赛抢答器显示屏的PLC设计任务4.2竞赛抢答器的PLC设计竞赛抢答器显示屏的PLC设计4.11任务描述2知识链接3任务实施01PARTONE任务描述4.1显示屏的PLC设计设计一个4位参赛队员的抢答器显示屏,控制要求如下:主持人按下开始抢答按钮后,假设1号参赛选手按下抢答按钮则七段码显示器显示“1”,其他人不得抢答;假设2号参赛选手按下抢答按钮后则七段码显示器显示“2”,其他人不得抢答;假设3号参赛选手按下抢答按钮后则七段码显示器显示“3”,其他人不得抢答;假设4号参赛选手按下抢答按钮后则七段码显示器显示“4”,其他人不得抢答。主持人按下复位按钮后,系统复位,为下一次系统抢答做准备。02PARTTWO知识链接
1.MOVE指令(单值移动指令)MOVE指令用于将单个数据元素从参数IN指定的源地址复制到参数OUT指定的目标地址。其指令的结构如图4-1所示,引脚功能如表4-1所示。图4-1MOVE指令的结构引脚参数引脚定义及作用EN使能输入端。IN源地址。OUT1目标地址①单个目标地址。②多个目标地址。添加多个OUT时,请单击“创建”(Create)图标
,或右键单击现有OUT参数之一的输出短线,并选择“插入输出”(Insertoutput)命令。ENO使能输出端1:无错误。成功复制了全部的COUNT个元素。0:源(IN)范围或目标(OUT)范围超出可用存储区。表4-1MOVE指令的引脚参数及作用4.1显示屏的PLC设计►4.1.1移动指令在图4-2中,MOVE指令的IN可以是定量,也可以是变量。在左侧的MOVE指令中,接通M0.0时,MOVE指令被触发,在源地址IN中输入16#1234,这时MOVE指令将数据16#1234复制到MW50中存储。在右侧的MOVE指令中,可以添加多个OUT,其左侧MOVE指令的使能输出端作为该指令块中的使能输入触发条件,此时,变量MD10中的数据16#0000ABCD将同时复制到MD20、MD30、MD40中进行存储。图4-2MOVE指令中一个或多个目标地址的用法4.1显示屏的PLC设计
2.MOVE_BLK指令(块移动指令)MOVE_BLK指令可以将一个数据块(数组)从参数IN的源起始地址复制到参数OUT的目标起始地址中,在执行期间可进行排队并处理中断事件。如果MOVE_BLK操作被中断,则最后移动的一个数据元素在目标地址中是完整并且一致的。MOVE_BLK操作会在中断OB执行完成后继续执行。其指令的结构如图4-3所示,引脚功能如表4-2所示。图4-3MOVE_BLK指令的结构引脚参数引脚定义及作用EN使能输入端。IN源起始地址。COUNT要复制的数据元素个数,数据类型只能是UInt。OUT目标起始地址。ENO使能输出端1:无错误。成功复制了全部的COUNT个元素。0:源(IN)范围或目标(OUT)范围超出可用存储区。表4-2MOVE_BLK指令的引脚参数及作用4.1显示屏的PLC设计MOVE_BLK指令的用法,如图4-4(a)、4-4(b)、4-4(c)所示。图4-4(a)MOVE_BLK指令的用法举例在图4-4(a)中,MOVE_BLK指令可以将数组data1中自ShuZu1[1]至ShuZu1[5]连续5个元素复制到数组data2中的ShuZu2[6]至ShuZu2[10],其中ShuZu1[1]为源起始地址,值为16#02,ShuZu2[2]为目标起始地址,值为16#02。其数据块复制前和复制后的结果如图例4-4(b)和4-4(c)所示。4.1显示屏的PLC设计图4-4(b)MOVE_BLK指令复制前的数组状态4.1显示屏的PLC设计图4-4(c)MOVE_BLK指令复制后的数组状态4.1显示屏的PLC设计3.UMOVE_BLK指令(无中断块移动指令)UMOVE_BLK指令与MOVE_BLK指令不同之处在于,在完成数据复制前进行排队但不处理中断事件。如果在执行中断OB子程序前移动操作必须完成且目标数据必须一致,则使用UMOVE_BLK指令。其指令结构如图4-5所示,引脚功能如表4-3所示。图4-5UMOVE_BLK指令的结构引脚参数引脚定义及作用EN使能输入端。IN源起始地址。COUNT要复制的数据元素个数,数据类型只能是UInt。OUT目标起始地址。ENO使能输出端1:无错误。成功复制了全部的COUNT个元素。0:源(IN)范围或目标(OUT)范围超出可用存储区。表4-3UMOVE_BLK指令的引脚参数及作用4.1显示屏的PLC设计4.MOVE_BLK_VARIANT指令(移动块指令)MOVE_BLK_VARIANT指令与MOVE_BLK作用类似,但是MOVE_BLK_VARIANT指令的用法更加灵活,它可以使用SRC将源地址的全部数据块或者部分数据元素复制到目标地址的指定位置,源地址数据块中的元素个数可以和目标地址数据块中的元素个数不同(可以复制数组中的多个或单个元素)。图4-6MOVE_BLK_VARIANT指令的结构4.1显示屏的PLC设计引脚参数引脚定义及作用EN使能输入端。SRC欲进行复制操作的源块,数据类型为Variant(指向数组或单独的数组元素)。COUNT要复制的数据元素个数,数据类型只能是UInt。SRC_INDEXSRC数组的零基索引,数据类型为Dint。DEST_INDEXDEST数组的零基索引。ENO使能输出端。RET_VAL错误信息,数据类型为Int。DEST源块内容所要复制到的目标区域,数据类型为Variant(指向数组或单独的数组元素)。表4-4MOVE_BLK_VARIANT指令的引脚参数及作用4.1显示屏的PLC设计5.Deserialize(反序列化)指令可以使用“Deserialize”指令将PLC数据类型(UDT)块的顺序表示转换回PLC数据类型并填充所有内容。如果比较结果为TRUE,则功能框输出为TRUE。其指令结构如图4-7所示,引脚功能如表4-5所示。图4-7Deserialize指令的结构引脚参数引脚定义及作用EN使能输入端。SRC_ARRAY包含数据流的全局数据块,数据类型Variant。POS已转换的PLC数据类型所使用的字节数,数据类型为Dint。ENO使能输出端。RET_VAL错误信息,数据类型为Int。DEST_VARIABLE已转换的PLC数据类型(UDT)存储所在的变量,数据类型Variant。表4-5Deserialize指令的引脚参数及作用4.1显示屏的PLC设计6.Serialize(序列化指令)使用“Serialize”指令将多个PLC数据类型(UDT)转换成按顺序表达的版本,并且不丢失结构。可以使用此指令将程序中的多个结构化数据项暂时保存到缓冲区中(例如,保存到全局数据块中),并发送给另一CPU。存储已转换的PLC数据类型的存储区必须采用ARRAYofBYTE数据类型,并且已声明为标准访问方式。转换前要确保有足够的存储空间。其指令结构如图4-8所示,引脚功能如表4-6所示。图4-8Serialize指令的结构4.1显示屏的PLC设计引脚参数引脚定义及作用EN使能输入端。SRC_VARIABLE待转换为按顺序表达版本PLC数据类型(UDT),数据类型Variant。POS已转换的PLC数据类型所使用的字节数。计算出的POS参数是从零开始的,数据类型为Dint。ENO使能输出端。RET_VAL错误信息,数据类型为Int。DEST_ARRAY作为所生成的数据流的存储目标的数据块,数据类型Variant。表4-6Serialize指令的引脚参数及作用4.1显示屏的PLC设计7.FILL_BLK指令(可中断块填充指令)使用FILL_BLK指令可将源数据元素IN复制到通过参数OUT指定初始地址的目标中。复制过程不断重复并填充相邻的一组地址,直到副本数等于COUNT参数。在FILL_BLK执行期间排队并处理中断事件。其指令结构如图4-9所示,引脚功能如表4-7所示。图4-9FILL_BLK指令的结构引脚参数引脚定义及作用EN使能输入端。IN数据源地址。COUNT要复制的数据元素个数,数据类型为UDint,USInt,UInt。OUT数据目标地址。ENO使能输出端1:无错误。IN元素成功复制到全部的COUNT个目标中。0:目标(OUT)范围超出可用存储区。表4-7FILL_BLK指令的引脚参数及作用4.1显示屏的PLC设计FILL_BLK指令的用法,如图4-10(a)、4-10(b)、4-10(c)所示。图4-10(a)FILL_BLK指令的用法在图4-10(a)中,FILL_BLK指令可以将数据块data3中单个ShuZu3[0]的值16#01填充到数据块data4中ShuZu4[0]到ShuZu4[5],填充的数据元素个数为6。该指令执行前和执行后的结果如图4-10(b)、4-10(c)所示。4.1显示屏的PLC设计图4-10(b)FILL_BLK指令执行前数组状态4.1显示屏的PLC设计图4-10(c)FILL_BLK指令执行后数组状态与MOVE_BLK指令不同的是,FILL_BLK指令中IN的元素是单一的,而MOVE_BLK指令中IN的元素可以是连续多个。4.1显示屏的PLC设计8.UFILL_BLK指令(不可中断块填充指令)使用UFILL_BLK指令可将源数据元素IN复制到通过参数OUT指定初始地址的目标中。复制过程不断重复并填充相邻的一组地址,直到副本数等于COUNT参数。在UFILL_BLK执行期间排队但不处理中断事件。其指令结构如图4-11所示,引脚功能如表4-8所示。图4-11UFILL_BLK指令的结构4.1显示屏的PLC设计引脚参数引脚定义及作用EN使能输入端。IN数据源地址。COUNT要复制的数据元素个数,数据类型为UDint,USInt,UInt。OUT数据目标地址。ENO使能输出端1:无错误。IN元素成功复制到全部的COUNT个目标中。0:目标(OUT)范围超出可用存储区。表4-8UFILL_BLK指令的引脚参数及作用4.1显示屏的PLC设计9.SCATTER指令(将位序列解析为单个位)SCATTER指令用于将数据类型为Byte、Word或DWord的变量解析为单个位,并保存在仅包含布尔型元素的Bool、Struct或PLC数据类型的数组中。例如,可以解析状态字,并使用索引读取和改变单个位的状态。其指令结构如图4-12所示,引脚功能如表4-9所示。图4-12SCATTER指令结构4.1显示屏的PLC设计引脚参数引脚定义及作用EN使能输入端。IN所解析的位序列。这些值不得位于的I/O区域或工艺对象的DB内。存储区为I、Q、M、D、L。OUT保存各个位的Array、Struct或PLC数据类型。存储区为I、Q、M、D、L。ENO使能输出端如果满足下列条件之一,使能输出ENO将返回信号状态“0”:①使能输入EN的信号状态为“0”。②Array、Struct或PLC数据类型中包含的Bool元素数目不足。表4-9SCATTER指令的引脚参数及作用4.1显示屏的PLC设计10.SCATTER_BLK指令(将ARRAY型位序列中的元素解析为单个位)SCATTER_BLK指令用于解析数组的一个或多个元素,并保存在Struct、PLC数据类型或ArrayofBoolean元素中。其指令结构如图4-13所示,引脚功能如表4-10所示。图4-13SCATTER_BLK指令的结构4.1显示屏的PLC设计表4-10SCATTER_BLK指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。INArrayofBool、Struct或PLC中的一个数组的元素。这些值不得位于的I/O区域或工艺对象的DB内。存储区为I、Q、M、D、L。COUNT_IN将解析到OUT参数中的源数组元素数量计数器。执行“count:”后在指令名称下方提供COUNT_IN参数的数据类型。COUNT_IN值不得位于I/O区域或工艺对象的数据库内。OUT保存各个位的Array、Struct或PLC数据类型。存储区为I、Q、M、D、L。ENO使能输出端如果ENO为FALSE,则不会将任何数据写入输出。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:•使能输入EN的信号状态为“0”。•源数组中的元素数量少于COUNT_IN参数中的指定数量。•目标数组的索引不以Byte、Word或Dword限值开始,在这种情况下,将不向ArrayofBool中写入任何结果。•ArrayofBool、Struct或PLC数据类型未提供所需的元素数量。4.1显示屏的PLC设计11.GATHER指令(将单个位组合成一个位序列)GATHER指令用于将仅包含布尔型元素的ARRAYofBool、Struct或PLC数据类型中的各个位组合为一个位序列。位序列保存在数据类型为Byte、Word或DWord的变量中。其指令结构如图4-14所示,引脚功能如表4-11所示。表4-11GATHER指令的引脚参数及作用图4-14GATHER指令的结构引脚参数引脚定义及作用EN使能输入端。INArray、Struct或PLC数据类型,这些数据类型中的各个位将组合为一个位序列。这些值不得位于的I/O区域或工艺对象的DB内。存储区为I、Q、M、D、L。OUT组合后的位序列,保存在一个变量中。存储区为I、Q、M、D、L。ENO使能输出端如果满足下列条件之一,使能输出ENO将返回信号状态“0”:•使能输入EN的信号状态为“0”。•Array、Struct或PLC数据类型(UDT)中Bool元素的数量少于或多于位序列所指定的数量。此时,系统不传送Bool元素。•可用的元素数少于所需的位数量。•ArrayofBool、Struct或PLC数据类型未提供所需的元素数量。4.1显示屏的PLC设计12.GATHER_BLK指令(将单个位组合为ARRAY型位序列中的多个元素)GATHER_BLK指令用于将仅包含布尔型元素的ARRAYofBool、Struct或PLC数据类型中的各个位组合为ARRAYof<位序列>中的一个或多个元素。其指令结构如图4-15所示,引脚功能如表4-12所示。图4-15GATHER_BLK指令的结构4.1显示屏的PLC设计引脚参数引脚定义及作用EN使能输入端。INArrayofBool、Struct或PLC中的一个数组的元素,其中的各个位将组合为OUT参数。这些值不得位于的I/O区域或工艺对象的DB内。存储区为I、Q、M、D、L。OUT组合后的位序列,保存在一个变量中。存储区为I、Q、M、D、L。ENO使能输出端如果ENO为FALSE,则不会将任何数据写入输出。如果满足下列条件之一,使能输出ENO将返回信号状态“0”:•使能输入EN的信号状态为“0”。•源数组的索引不以Byte、Word或DWord限值开始。此时,不会向ARRAYof中写入任何结果。•ARRAY[*]of中未提供所需的元素数量。表4-12GATHER_BLK指令的引脚参数及作用4.1显示屏的PLC设计13.SWAP指令(交换指令)SWAP指令用于反转二字节和四字节数据元素的字节顺序,但不改变每个字节中的位顺序。其指令结构如图4-16所示,引脚功能如表4-13所示。图4-16SWAP指令的结构引脚参数引脚定义及作用EN使能输入端。IN有序数据字节IN。数据类型为Word,Dword。OUT反转有序数据字节OUT。数据类型为Word,Dword。ENO使能输出端。执行SWAP指令之后,ENO始终为TRUE。表4-13SWAP指令的引脚参数及作用4.1显示屏的PLC设计SWAP指令数据类型只能是Word和DWord两种类型,在图4-17(a)中,当需要以字为交换方式时,数据类型应选择为Word,当IN端输入MW16#1234时,输出端输出16#3412。在图4-17(b)中,当需要进行双字交换时,数据类型应选择为DWord,此时IN端输入16#1234_ABCD,输出端输出16#CDAB_3412,然后不停地进行交换。SWAP指令的功能,如图4-17所示。图4-17(a)SWAP指令数据类型为Word的用法图4-17(b)SWAP指令数据类型为DWord的用法4.1显示屏的PLC设计14.VariantGet指令(读取VARIANT变量值)VariantGet指令用于读取SRC参数所指向的变量值,并将其写入到DST参数的变量中。其指令结构如图4-18所示,引脚功能如表4-14所示。图4-18VariantGet指令的结构引脚参数引脚定义及作用EN使能输入端。SRC指向源数据的指针,数据类型为Variant。DST将要写入数据的目标。数据类型为位字符串、整数、浮点数、定时器、日期和时间、字符串、ARRAY元素、PLC数据类型。ENO使能输出端1:无错误。指令会将SRC所指向的变量数据复制到DST变量中。0:使能输入EN的信号状态为“0”,或数据类型不匹配。指令不复制任何数据。表4-14VariantGet指令的引脚参数及作用4.1显示屏的PLC设计15.VariantPut指令(写入VARIANT变量值)VariantPut指令用于将SRC参数所引用的变量写入到DST参数所指向的变量中。其指令结构如图4-19所示,引脚功能如表4-15所示。图4-19VariantPut指令的结构表4-15VariantPut指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。SRC指向源数据的指针。数据类型为位字符串、整数、浮点数、定时器、日期和时间、字符串、ARRAY元素、PLC数据类型。DST将要写入数据的目标。数据类型为Variant。ENO使能输出端1:无错误。指令会将DST所指向的变量数据复制到SRC变量中。0:使能输入EN的信号状态为“0”,或数据类型不匹配。指令不复制任何数据。4.1显示屏的PLC设计16.CountOfElements指令(获取ARRAY元素数量)CountOfElements指令可以用来查询Variant指向的变量中所含有的Array元素数量。其指令结构如图4-20所示,引脚功能如表4-16所示。图4-20CountOfElements指令的结构表4-16CountOfElements指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。IN待计算数组元素个数的变量,数据类型为Variant。RET_VAL指令结果,数据类型为UDint。ENO使能输出端1:无错误。指令将返回数组元素的数目。0:使用输入EN的信号状态为“0”或变量未指向数组。指令返回0。4.1显示屏的PLC设计17.LOWER_BOUND指令(读取ARRAY下限)在块接口中,可声明ARRAY[*]的变量。这些局部变量可读取ARRAY限值。此时,需要在DIM参数中指定维数。LOWER_BOUND指令允许读取ARRAY的变量下限。其指令结构如图4-21所示,引脚功能如表4-17所示。表4-17LOWER_BOUND指令的引脚参数及作用图4-21LOWER_BOUND指令的结构引脚参数引脚定义及作用EN使能输入端。ARR待读取可变下限的ARRAY,数据类型为ARRAY[*]。DIM待读取可变下限的ARRAY维度,数据类型为UDINT。OUT结果,数据类型为DINT。ENO使能输出端如果满足下列条件之一,则使能输出ENO的信号状态为“0”:•使能输入EN的信号状态为“0”。•输入DIM处指定的维数不存在。4.1显示屏的PLC设计18.UPPER_BOUND指令(读取ARRAY上限)在块接口中,可声明ARRAY[*]的变量。这些局部变量可读取ARRAY限值。此时,需要在DIM参数中指定维数。UPPER_BOUND指令允许读取ARRAY的变量上限。其指令结构如图4-22所示,引脚功能如表4-18所示。表4-18UPPER_BOUND指令的引脚参数及作用图4-22UPPER_BOUND指令的结构引脚参数引脚定义及作用EN使能输入端。ARR待读取可变上限的ARRAY,数据类型为ARRAY[*]。DIM待读取可变上限的ARRAY维度,数据类型为UDINT。OUT结果,数据类型为DINT。ENO使能输出端如果满足下列条件之一,则使能输出ENO的信号状态为“0”:•使能输入EN的信号状态为“0”。•输入DIM处指定的维数不存在。4.1显示屏的PLC设计19.FieldRead指令(读取域指令)FieldRead指令用于从第一个元素由MEMBER参数指定的数组中读取索引值为INDEX的数组元素。数组元素的值将传送到VALUE参数指定的位置。其指令结构如图4-23所示,引脚功能如表4-19所示。表4-19FieldRead指令的引脚参数及作用图4-23FieldRead指令的结构引脚参数引脚定义及作用EN使能输入端。INDEX输入,要读取或写入的数组元素的索引号,数据类型为DINT。MEMBER输入。在全局数据块或块接口中定义的一维数组的第一个元素的位置。数据类型为二进制数、整数、浮点数、定时器、DATE、TOD以及作为ARRAY变量元素的CHAR和WCHAR。数据类型必须与VALUE相同。VAlUE将指定的数组元素复制到的位置。数据类型为二进制数、整数、浮点数、定时器、DATE、TOD、CHAR、WCHAR。数据类型必须与MEMBER相同。ENO使能输出端如果满足下列条件之一,则使能输出ENO的信号状态为“0”:•使能输入EN的信号状态为“0”。•输入DIM处指定的维数不存在。4.1显示屏的PLC设计20.WriteField指令(写入域指令)WriteField指令用于将VALUE参数指定的位置上的值传送给第一个元素由MEMBER参数指定的数组。该值将传送给由INDEX参数指定数组索引的数组元素。其指令结构如图4-24所示,引脚功能如表4-20所示。表4-20WriteField指令的引脚参数及作用图4-24WriteField指令的结构引脚参数引脚定义及作用EN使能输入端。INDEX输入。要读取或写入的数组元素的索引号。数据类型为DINT。MEMBER输入。在全局数据块或块接口中定义的一维数组的第一个元素的位置。数据类型为二进制数、整数、浮点数、定时器、DATE、TOD以及作为ARRAY变量元素的CHAR和WCHAR。数据类型必须与VALUE相同。VAlUE被复制到指定的数组元素的值的位置。数据类型为二进制数、整数、浮点数、定时器、DATE、TOD、CHAR、WCHAR。数据类型必须与MEMBER相同。ENO使能输出端如果满足下列条件之一,则使能输出ENO的信号状态为“0”:•使能输入EN的信号状态为“0”。•输入DIM处指定的维数不存在。4.1显示屏的PLC设计03PARTTHREE任务实施1.工作流程分析图4-25竞赛抢答器显示屏的工作流程2.I/O分配表表4-21竞赛抢答器显示屏的I/O分配表输入(I)输出(Q)设备符号地址设备符号地址选手1按钮SB1I0.07段码显示器aQ2.0选手2按钮SB2I0.17段码显示器bQ2.1选手3按钮SB3I0.27段码显示器cQ2.2选手4按钮SB4I0.37段码显示器dQ2.3起动按钮SB5I0.47段码显示器eQ2.4复位按钮SB6I0.57段码显示器fQ2.57段码显示器gQ2.63.I/O接线图图4-26竞赛抢答器显示屏接线图4.项目配置与组态(1)创建工程项目。在Portal视图中选择“创建新项目”,输入项目名称“抢答器显示屏的PLC设计”,选择项目保存路径,单击“创建”按钮,创建项目完成。
(2)添加新设备。在Portal视图中选择“打开项目视图”,然后在项目树中打开“抢答器显示屏的PLC设计”的下级菜单,然后单击“添加新设备”选项,在打开的“添加新设备”窗口中单击“控制器”按钮,在中间的目录树中,依次单击“SIMATICS7-1200”→“CPU”→“CPU1214CAC/DC/DC”各选项前面的下拉按钮,或依次双击选项名称“SIMATICS7-1200”→“CPU”→“CPU1212CAC/DC/DC”,再打开6ES7214-1AG40-0XB0,单击窗口右下角的“添加”按钮,添加新设备完成。4.项目配置与组态(3)编辑变量表。在项目树中,依次双击“PLC_1”→“PLC变量”→“添加新变量表”,生成“变量表_1[0]”。选中“变量表_1[0]”并单击鼠标右键,选择重命名,将变量表命名为“抢答器显示屏变量表”,修改完成后,双击“抢答器显示屏变量表”并根据I/O分配表编辑变量表,如图4-27所示。
图4-27竞赛抢答器显示屏变量表5.程序编写图4-28竞赛抢答器显示屏梯形图程序(1)5.程序编写图4-28竞赛抢答器显示屏梯形图程序(2)5.程序编写图4-28竞赛抢答器显示屏梯形图程序(3)5.程序编写图4-28竞赛抢答器显示屏梯形图程序(4)5.程序编写图4-28竞赛抢答器显示屏梯形图程序(5)5.程序编写图4-28竞赛抢答器显示屏梯形图程序(6)6.安装与调试运行6.安装与调试运行QB2的字节状态为2#00000110即16#06时,数码管显示为1b段c段6.安装与调试运行QB2的字节状态为2#01011011即16#5B时,数码管显示为2b段d段a段g段e段6.安装与调试运行QB2的字节状态为2#01001111,即16#4F时,数码管显示为3b段c段a段g段d段6.安装与调试运行QB2的字节状态为2#01100110,即16#66时,数码管显示为4b段c段f段g段6.安装与调试运行将设备组态及图4-28所示的梯形图程序编译后下载到CPU中,启动CPU,将CPU切换至RUN模式,在监视状态下,模拟抢答器显示屏运行的情况,闭合触点I0.4,接通I0.0观察MB10是否将16#06传递到QB2。此时,分别接通I0.1,I0.2,I0.3观察M20.2,M20.3,M20.4是否得电,不得电,程序正确;同时观看QB2的数值是否改变,不改变,程序正确,最后闭合I0.5,观察所有线圈是否能复位;再次闭合I0.4,查看QB2的数据是否为16#00,若是,程序正确。接通I0.1观察MB10是否将16#5B传递到QB2。此时,分别接通I0.0,I0.2,I0.3观察M20.1,M20.3,M20.4是否得电,不得电,程序正确;同时观看QB2的数值是否改变,不改变,程序正确,最后闭合I0.5,观察所有线圈是否能复位;再次闭合I0.4,查看QB2的数据是否为16#00,若是,程序正确。6.安装与调试运行接通I0.2观察MB10是否将16#4F传递到QB2。此时,分别接通I0.0,I0.1,I0.3观察M20.1,M20.2,M20.4是否得电,不得电,程序正确;同时观看QB2的数值是否改变,不改变,程序正确,最后闭合I0.5,观察所有线圈是否能复位;再次闭合I0.4,查看QB2的数据是否为16#00,若是,程序正确。接通I0.3观察MB10是否将16#66传递到QB2。此时,分别接通I0.0,I0.1,I0.2观察M20.1,M20.2,M20.3是否得电,不得电,程序正确;同时观看QB2的数值是否改变,不改变,程序正确,最后闭合I0.5,观察所有线圈是否能复位;再次闭合I0.4,查看QB2的数据是否为16#00,若是,程序正确。如若以上工作流程不能满足,则程序错误,请重新编辑程序。确保程序无误后,按图4-26所示的抢答器显示屏的I/O接线图正确连接输入设备、输出设备,接通电源,按照调试程序的步骤继续进行验证,如果不能按控制要求进行,检查I/O接线,更改接线后,再次通电验证,直至程序和硬件符合控制要求。竞赛抢答器的PLC设计4.21任务描述2知识链接3任务实施4拓展应用01PARTONE任务实施4.2抢答器的PLC设计结合任务一,设计一个竞赛抢答器,实现以下功能:1.主持人按下开始抢答按钮后,允许抢答指示灯点亮,参赛选手可以按下抢答按钮,此时为正常抢答;若主持人没有按下开始抢答按钮,参赛选手按下抢答按钮视为违规抢答。2.正常抢答时任何一位参赛选手抢答成功时,该抢答位对应的指示灯点亮同时显示屏上会显示选手的编号,其他选手不能参与抢答。3.若参赛选手出现违规抢答时,该抢答位指示灯不亮,但显示屏上会显示选手编号且蜂鸣器会提示,此时其他选手不能参与抢答。4.当答题完毕或者出现违规抢答,主持人按下复位按钮,进行系统复位,为下一次竞赛做准备。02PARTTWO知识链接
程序控制指令是用于控制梯形图程序执行流程的指令。它们可以改变程序的执行顺序,使程序能够根据不同的条件执行不同的操作。程序控制指令可以实现复杂的逻辑和控制流程,使程序更加的灵活和高效。在西门子S7-1200PLC中,程序控制指令主要包括跳转指令(JMP/JMPN),跳转列表指令(JMP_LIST)、跳转分配器(SWITCH)、返回指令(RET)等。4.2抢答器的PLC设计►4.2.1程序控制指令
1.JMP指令(跳转指令)JMP指令可以使当前的程序跳转到指定的程序段,必须与跳转标签Label_name配合使用,跳转标签Label_name的作用是声明JMP指令将要跳转到目标程序段的位置。其指令的功能如表4-22所示。LADFBD说明RLO(逻辑运算结果)=1时跳转:如果有能流通过JMP线圈(LAD),或者JMP功能框的输入为真(FBD),则程序将从指定标签后的第一条指令继续执行。JMP跳转指令的目标标签。表4-22JMP指令的功能4.2抢答器的PLC设计
2.JMPN指令(跳转指令)JMPN指令与JMP指令的功能一样,只不过是在逻辑运算结果为0时,执行跳转。其指令的功能如表4-23所示。LADFBD说明RLO(逻辑运算结果)=1时跳转:如果有能流通过JMP线圈(LAD),或者JMP功能框的输入为真(FBD),则程序将从指定标签后的第一条指令继续执行。JMP跳转指令的目标标签。表4-23JMPN指令的功能4.2抢答器的PLC设计
下面我们以[例4-1]来讲解一下跳转指令(JMP)的具体应用。[例4-1]在铸造行业中,孕育剂加料系统控制有手动加料和自动加料两种运行模式,I0.2为手动加料/自动加料方式模式开关,当自动模式接通时,加料机自行起动并按照运行20S,停止10S的规律循环运行;当手动模式接通时,加料机的起动和停止需要通过I0.0和I0.1来实现,加料机不再需要计时。其程序如图4-29所示。图4-29跳转指令的应用4.2抢答器的PLC设计
图4-29跳转指令的应用4.2抢答器的PLC设计
图4-29跳转指令的应用4.2抢答器的PLC设计
图4-29跳转指令的应用4.2抢答器的PLC设计
3.JMP_LIST(定义跳转列表)JMP_LIST指令用作程序跳转分配器,控制程序段的执行。根据K输入的值跳转到相应的程序标签。程序从目标跳转标签后面的程序指令继续执行。如果K输入的值超过标签数,则不进行跳转,继续处理下一程序段。其指令结构如图4-30所示,引脚功能如表4-24所示。图4-30JMP_LIST指令的结构引脚参数引脚定义及作用EN使能输入端。K跳转分配器控制值,数据类型为UInt。DEST0,DEST1,…DESTn与特定K参数值对应的跳转目标标签:如果K的值等于0,则跳转到分配给DEST0输出的程序标签。如果K的值等于1,则跳转到分配给DEST1输出的程序标签,以此类推。如果K输入的值超过标签数,则不进行跳转,继续处理下一程序段。表4-24JMP_LIST指令的引脚参数及作用4.2抢答器的PLC设计4.SWITCH(跳转分配器)SWITCH指令也用作程序跳转分配器,控制程序段的执行。通过K输入的值与分配给指定比较输入的值的比较结果,跳转到与第一个为“真”的比较测试相对应的程序标签。如果比较结果都不为TRUE,则跳转到分配给ELSE的标签。程序从目标跳转标签后面的程序指令继续执行。其指令结构如图4-31所示,引脚功能如表4-25所示。图4-31SWITCH指令的结构引脚参数引脚定义及作用EN使能输入端。K常用比较值输入。==、<>、<、<=、>、>=分隔比较值输入,获得特定比较类型。数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,TOD,Date。DEST0,DEST1,…DESTn与特定比较对应的跳转目标标签:首先处理K输入下面的第一个比较输入,如果K值与该输入的比较结果为“真”,则跳转到分配给DEST0的标签。下一比较测试使用接下来的下一个输入,如果比较结果“真”,则跳转到分配给DEST1的标签。依次对其它比较进行类似的处理,如果比较结果都不为“真”,则跳转到分配给ELSE输出的标签。表4-25SWITCH指令的引脚参数及作用4.2抢答器的PLC设计5.RET(返回)RET用于终止当前块的执行。当且仅当有能流通过RET线圈(LAD),或者当RET功能框的输入为真(FBD)时,则当前块的程序执行将在该点终止,并且不执行RET指令以后的指令。其指令的功能如表4-26所示。表4-26RET指令的功能LADFBD说明终止当前块的执行4.2抢答器的PLC设计1.与运算(AND)将操作数IN1和IN2进行逻辑与运算,将结果存储到OUT当中。其指令结构如图4-32所示,引脚功能如表4-27所示。图4-32AND指令的结构引脚参数引脚定义及作用EN使能输入端。IN1操作数1逻辑输入,数据类型为Byte,Word,DWord。IN2操作数2逻辑输入,数据类型为Byte,Word,DWord。OUT逻辑输出,数据类型为Byte,Word,DWord。表4-27AND指令的引脚参数及作用4.2抢答器的PLC设计►4.2.2字逻辑运算下面我们以[例4-2]来说明与指令(AND)的用法。[例4-2]分析下列程序中IN1与IN2进行与运算后OUT的结果。图4-33与运算举例在图4-33中,MB10中存储的是16#03(2#00000011),MB20中存储的是16#FE(2#11111110),MB10与MB20“与运算”的过程是将两个字节数据中二进制数据中的每一位进行“与运算”,运算结果为2#00000010,并将运算结果转换为16#02存在MB30中,进行输出。4.2抢答器的PLC设计2.或运算(OR)将操作数IN1和IN2进行逻辑“或运算”,将结果存储到OUT当中。其指令结构如图4-34所示,引脚功能如表4-28所示。图4-34OR指令的结构引脚参数引脚定义及作用EN使能输入端。IN1操作数1逻辑输入,数据类型为Byte,Word,DWord。IN2操作数2逻辑输入,数据类型为Byte,Word,DWord。OUT逻辑输出,数据类型为Byte,Word,DWord。表4-28OR指令的引脚参数及作用4.2抢答器的PLC设计下面我们以[例4-3]来说明或指令(OR)的用法。[例4-3]分析下列程序中IN1与IN2进行或运算后OUT的结果。在图4-35中,MB10中存储的是16#03(2#00000011),MB20中存储的是16#FE(2#11111110),MB10与MB20“或运算”的过程是将两个字节数据中二进制数据中的每一位进行“或运算”,运算结果为2#11111111,并将运算结果转换为16#FF存在MB30中,进行输出。图4-35或运算举例4.2抢答器的PLC设计3.或运算(XOR)将操作数IN1和IN2进行“异或运算”,将结果存储到OUT当中。其指令结构如图4-36所示,引脚功能如表4-29所示。图4-36XOR指令的结构引脚参数引脚定义及作用EN使能输入端。IN1操作数1逻辑输入,数据类型为Byte,Word,DWord。IN2操作数2逻辑输入,数据类型为Byte,Word,DWord。OUT逻辑输出,数据类型为Byte,Word,DWord。表4-29XOR指令的引脚参数及作用4.2抢答器的PLC设计[例4-4]分析下列程序中IN1与IN2进行异或运算后OUT的结果。图4-37异或运算举例在图4-37中,MB10中存储的是16#03(2#00000011),MB20中存储的是16#FE(2#11111110),MB10与MB20“异或运算”的过程是将两个字节数据中二进制数据中的每一位进行“异或运算”,运算结果为2#11111101,并将运算结果转换为16#FD存在MB30中,进行输出。4.2抢答器的PLC设计4.求反码(INV)将参数IN中的每一个二进制位进行取反,将结果存储到OUT当中。其指令结构如图4-38所示,引脚功能如表4-30所示。图4-38INV指令的结构引脚参数引脚定义及作用EN使能输入端。IN要取反的数据元素,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Byte,Word,DWord。OUT取反后的输出,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Byte,Word,DWord。表4-30INV指令的引脚参数及作用4.2抢答器的PLC设计[例4-5]分析下列程序中IN1求反码运算后OUT的结果。图4-39求反码运算举例在图4-39中,MB10中存储的是16#00(2#00000000),“求反码”的过程是将MB10字节数据中二进制数据中的每一位进行“求反运算”,即0→1,运算结果为2#11111111,并将运算结果转换为16#FF存在MB20中,进行输出。4.2抢答器的PLC设计5.解码(DECO)将参数IN中相对应的二进制数据位置1,其它位置所有二进制数据位置0,进行输出。其指令结构如图4-40所示,引脚功能如表4-31所示。图4-40DECO指令的结构引脚参数引脚定义及作用EN使能输入端。ENO使能输出端。IN要解码的值,数据类型为UInt。OUT解码后的位序列,数据类型为Byte,Word,DWord。表4-31DECO指令的引脚参数及作用4.2抢答器的PLC设计在DECO指令中,如果OUT数据类型选择为Byte,则OUT的数据最多不能超过8位,倘若IN中的数据超过8位,则OUT中的数据继续从第0位开始循环计算。以[例4-6]说明。[例4-6]分析下列程序中DECO运算后的结果。图4-41(a)IN的数据位长度不超过8位的DECO运算在图4-41(a)中,MB10中存储的是十进制数5,“解码”的过程是将MB10中二进制数据中的第5位(从最右边开始为第0位)置1,其他7位全部置0,即生成2#0010_0000,最后将结果转换为16#20保存在MB20中。4.2抢答器的PLC设计图4-42ENCO指令的结构6.编码(ENCO)将参数IN中二进制数据位最低位的位数值传给OUT进行输出。其指令结构如图4-42所示,引脚功能如表4-32所示。引脚参数引脚定义及作用EN使能输入端。ENO使能输出端。IN要编码的位序列,数据类型为Byte,Word,DWord。OUT编码后的值,数据类型为UInt。表4-32ENCO指令的引脚参数及作用4.2抢答器的PLC设计图4-43ENCO运算举例在图4-43中,MB10中存储的是16#C4,转换成2#1100_0100传送到IN中进行“编码”,其过程是寻找2#1100_0100中数值为1的最低位,并将这个数值为1的最低位位数“2”进行输出,输出结果传送到MB20中进行存储(转换成16#02)。[例4-7]分析下列程序中ENCO运算后的结果。4.2抢答器的PLC设计图4-44SEL指令的结构7.选择(SEL)根据参数G的BOOL状态将IN0或IN1的值选择性地分配给OUT进行输出。其指令结构如图4-44所示,引脚功能如表4-33所示。表4-33SEL指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。ENO使能输出端。G选择开关,0时选择IN0进行输出,1时选择IN1进行输出。IN0IN1输入,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。OUT输出,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。4.2抢答器的PLC设计图4-45SEL运算举例在图4-45中,当M0.0断开时,IN0将MB10中的数据16#33进行输出同时存储到MB30中;当M0.0闭合时,IN1将MB20中的数据16#11进行输出同时存储到MB30中,以实现选择运算。[例4-8]分析下列程序中SEL运算后的结果。4.2抢答器的PLC设计图4-46MUX指令的结构8.多路复用(MUX)根据参数K的参数将IN0、IN1、ELSE的值选择性地分配给OUT进行输出。其指令结构如图4-46所示,引脚功能如表4-34所示。表4-34MUX指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。ENO使能输出端。K选择开关,K=0时选择IN0进行输出;K=1时选择IN1进行输出;K>1时选择IN1进行输出。IN0IN1输入,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。ELSE输入替换值,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。OUT输出,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。4.2抢答器的PLC设计图4-47DEMUX指令的结构9.多路分用(DEMUX)将IN的值根据参数K选择性地分配给OUT0、OUT1、ELSE进行输出。其指令结构如图4-47所示,引脚功能如表4-35所示。表4-35DEMUX指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。ENO使能输出端。K选择开关,K=0时将IN的值输出到OUT0;K=1时将IN的值输出到OUT1;K>1时将IN的值输出到ELSE。IN输入,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。OUT0OUT1ELSE输出,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。ELSE替换输出,数据类型为SInt,Int,DInt,USInt,UInt,UDInt,Real,LReal,Byte,Word,DWord,Time,Date,TOD,Char,WChar。4.2抢答器的PLC设计图4-49SHR指令的结构1.SHR(右移)使IN的位序列向右移动N位。其指令结构如图4-49所示,引脚功能如表4-36所示。表4-36SHR指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。IN要移位的位序列。N要移位的位数,数据类型为USInt,UDint。OUT移位操作后的位序列,数据类型为整数。4.2抢答器的PLC设计►4.2.3移位和循环位移图4-50SHR指令的用法选择右移指令,将16#F0(2#11110000)赋值给MB300,将N设置为1,将输出值存到MB400中,结果如图4-51所示。下面我们以[例4-10]来说明右移指令的作用。[例4-10]将11110000右移1位进行输出。图4-51SHR指令的输出结果在图4-51监控与强制表中将MB300,MB400的显示格式设置成为二进制,可以看出,MB300中的数据2#11110000右移1位后变为2#01111000后,再转成16#78后存储在MB400中,结果如图4-50所示。4.2抢答器的PLC设计图4-52SHL指令的结构2.SHL(左移)使IN的位序列向左移动N位。其指令结构如图4-52所示,引脚功能如表4-37所示。表4-37SHR指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。IN要移位的位序列。N要移位的位数,数据类型为USInt,UDint。OUT移位操作后的位序列,数据类型为整数。4.2抢答器的PLC设计图4-53ROR指令的结构3.ROR(循环右移)用于将参数IN的位序列循环向右移位,结果分配给参数OUT。其指令结构如图4-53所示,引脚功能如表4-38所示。表4-38ROR指令的引脚参数及作用引脚参数引脚定义及作用EN使能输入端。IN要循环移位的位序列。N要循环移位的位数,数据类型为USInt,UDint。OUT循环移位操作后的位序列,数据类型为整数。4.2抢答器的PLC设计图4-54ROL指令的结构4.ROL(循环左移)用于将参数IN的位序列循环向左移位,结果分配给参数OU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CEAIE 002-2019中小学生赴境外研学旅行服务机构规范
- T/CI 147-2022药食同源及药膳配方食品通用要求
- 2025年湖北省天门市高考历史真题含完整答案【全优】
- 2026年吉林省双辽市高考历史测试卷及答案(各地真题)
- 2025年山东省即墨市高二历史上册期末考试检测卷附参考答案【B卷】
- 2025年山东省莱西市高考历史测试卷含答案【能力提升】
- 2025年广东省高州市高二历史上册期末考试考试卷含完整答案【网校专用】
- T/HSK 0004-2025磷石膏充填采矿技术规范
- 2026年海南省万宁市高二历史上册期末考试检测卷【夺冠】附答案
- 2026年湖北省仙桃市高二历史上册期末考试真题及完整答案【易错题】
- 某电路技术有限公司突发环境事件应急预案
- 《环境保护法》解读
- 2026中国交通建设集团招聘考试历年参考题库含答案详解
- 2026年中秋国庆节前安全教育培训
- 工程造价咨询结算审核工作方案
- 城市给水管网改造工程实施方案
- GB 47834-2026晶体硅光伏组件和逆变器能效限定值及能效等级
- 2026人教版四年级数学上册第七单元第3课《图形的认识与测量》课件
- 医疗设备售后服务方案(完整版可直接投标使用)
- 2026年湖南省事业编单位人员招聘考试备考题库及答案详解
- 药物临床治疗学试题及答案2026年版
评论
0/150
提交评论