一种可编程控制器的指令表示方法及可编程控制器的制造方法

文档序号:6296184阅读:150来源:国知局
一种可编程控制器的指令表示方法及可编程控制器的制造方法
【专利摘要】本发明适用于可编程控制器【技术领域】,提供了一种可编程控制器的指令表示方法,该方法包括:如指令为短逻辑指令,则采用一个16位二进制数表示该逻辑指令,如指令为标准逻辑指令,采用两个16位二进制数表示该逻辑指令,如指令为功能指令,采用前序部分和后序部分表示该功能指令,其中所述前序部分为一个16位二进制数,所述后续部分具体为,所述功能指令对应的数据类型的值。本发明提供的方法具有指令长度短,指令获取时间短,执行速度快的优点。
【专利说明】一种可编程控制器的指令表示方法及可编程控制器
【技术领域】
[0001]本发明属于可编程控制器领域,尤其涉及一种可编程控制器的指令表示方法及可编程控制器。
【背景技术】
[0002]当今流行的可编程控制器(英文全称:Programmable Logic Controller,英文简称:PLC)体系,从诞生到现在已有30多年了,早期的PLC功能比较弱,指令比较简单,随着PLC技术的发展,PLC的功能越来越强大,指令也越来越多,但是为了兼容早期的PLC而无法重构PLC的指令系统,只能在原来的基础上增加补丁,实现新的功能,久而久之,这种补丁就越来越多,使得PLC的指令系统很不合理,执行效率低下,占用内存较多。
[0003]例如现在常用的三菱的PLC指令系统,三菱的指令系统也是以16位二进制(字)数为单位的,指令描述如下:
[0004]b15b14b13b12 这 4 位的分配:
[0005]其中,
[0006]O-应用指令
[0007]1-P应用指令
[0008]2-LD指令一逻辑位加载指令
[0009]3-LDI指令一逻辑非位加载指令
[0010]4-AND指令一逻辑位与[0011 ] 5-ANI指令一逻辑位非与
[0012]6-0R指令一逻辑位或
[0013]7-0RI指令一逻辑位非或
[0014]8-数据类型标识
[0015]9-数据类型标识
[0016]A-数据类型标识
[0017]B-Pn指令,仅对CJ,CALL有效
[0018]C-OUT指令一逻辑位输出
[0019]D-SET指令一逻辑位置位
[0020]E-RST指令一逻辑位复位
[0021]F-单字指令;
[0022]共有9条位操作指令;
[0023]b11b10b9b8b7b6b5b4b3b2b1b0-12位的地址,可以表示4096个位地址,地址范围0x0000?OxOFFF,这4096个位地址分8个区:
[0024]0x0000 ?0x03FF SO ?S999 表示状态;
[0025]0x0400 ?0x04FF XO ?X377 (8 进制,共 256 位输入);
[0026]0x0500 ?0x05FF YO ?Y377 (8 进制,共 256 位输出);[0027]0x0600 ~0x06FF TO ~T255 (定时器状态位,共 256 个);
[0028]0x0700 ~0x07FF (256 位保留未用);
[0029]0x0800 ~OxODFF MO ~M1535 (中间寄存器共 1536 位);
[0030]OxOEOO ~OxOEFF CO ~C255 (计数器状态位,共 256 个);
[0031]OxOFOO ~OxOFFF M8000 ~M8255 (中间寄存器,共 256 位)。
[0032]在实现现有技术提供的技术方案中,发现如下问题:
[0033]现有的三菱的指令系统的指令表示方法的指令长度长,从而影响指令获取时间,降低执行速度。

【发明内容】

[0034]本发明实施例的目的在于提供一种可编程控制器的指令表示方法,旨在解决现有技术可编程控制器的指令长度长,影响指令获取时间,降低执行速度的问题。
[0035]本发明实施例是这样实现的,提供一种可编程控制器的指令表示方法,所述方法包括:
[0036]如指令为短逻辑指令,则采用一个16位二进制数表示该逻辑指令,其中所述16位二进制数定义为:b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0,b15 为最高位,bQ 为最低位;其中,b15 为该短逻辑指令组的标识,b14b13b12表示变量工作区,bnb10b9b8表示指令代码,b7b6b5b4b3b2b1b0表示逻辑变量地址,b7b6b5b4表示逻辑变量的字地址,b3b2b1b0表示字中的位地址;
[0037]如指令为标准逻辑指令,采用两个16位二进制数表示该逻辑指令,其中,第一个16位二进制数中的b15b14为该逻辑指令组的标识,b13表示指令执行状态,b12bnb10备用,b9b8b7b6b5表不变量工作区代号,!表不指令代码;第二个16位二进制数中的b15b14b13b12bnb10b9b8b7b6b5b4表示位变量的字地址,b3b2b1b0表示字中的位地址;
[0038]如指令为功能指令,采用前序部分和后序部分表示该功能指令,其中所述前序部分为一个16位二进制数,其中,前序部分的b15b14为该指令组标识,b13表示指令扩展描述标识,b12bnb1(lb9b8表示指令长度,bAbAbAbA表示指令代码;所述后续部分具体为,所述功能指令对应的数据类型的值。
[0039]可选的,所述功能指令数据类型包括:
[0040]变量地址、字符串和常数。
[0041]可选的,所述功能指令对应的数据类型的值具体包括:
[0042]当为常数时,所述功能指令对应的数据类型的值具体可以为,采用至少二个16位二进制数表示该常数,第一个16位二进制数的b15b14b13b12保留,bnb1(lb9b8b7b6表示变量工作区,b5表示数据类型,b4b3b2b1b0表示变量类型,后续的16位二进制数表示该常数的值;
[0043]当为变量地址时,所述功能指令对应的数据类型的值具体为,采用两个16位二进制数表示该变量,第一个16位二进制数的b15b14b13b12表示偏移地址指针索引,bnb1(lb9b8b7b6表示变量工作区,b5表示数据类型!表示变量类型;第二个16位二进制数表示变量地址;
[0044]当为字符串时, 所述功能指令对应的数据类型的值具体为,采用至少二个16位二进制数表示该变量,第一个16位二进制数的b15b14b13b12bnb1(lb9b8b7b6b5表示所代表字符串的长度,b4b3b2b1b0表示变量类型;后续的16位二进制数表示字符串的值。[0045]可选的,如所述功能指令具有扩展描述标识,则后序部分还包括:扩展部分,所述扩展部分为一个16位二进制数,其中b15表示指令的执行状态,b14表示上升沿执行、b13位表示下降沿执行、b12位表示立即执行,bn?Idci保留。
[0046]本发明实施例与现有技术相比,有益效果在于:本发明的技术方案具有指令长度短,指令获取时间短,执行速度快的优点。
【具体实施方式】
[0047]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0048]本发明【具体实施方式】提供一种可编程控制器的指令表示方法,该方法具体包括如下:
[0049]如指令为短逻辑指令,则采用一个16位二进制数表示该逻辑指令,其中该16位二进制数定义为:b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0,b15 为最高位,bQ 为最低位;其中,b15=0 为该短逻辑指令组的标识,b14b13b12表示变量工作区,bnb10b9b8表示指令代码,b7b6b5b4b3b2b1b0表示逻辑变量地址,其中,b7b6b5b4表示逻辑变量的字地址,b3b2b1b0表示字中的位地址;
[0050]如指令为标准逻辑指令,采用两个16位二进制数表示该逻辑指令,其中,第一个16位二进制数中的b15b14为该指令组标识,(具体代码可以为10),b13表示指令执行状态,bi2bnb1(l备用,b9b8b7b6b5表不变量工作区代号,bAbAb。表不指令代码;第二个16位二进制数中的b15b14b13b12bnb10b9b8b7b6b5b4表示逻辑变量的字地址,b3b2b1b0表示字中的位地址;
[0051]如指令为功能指令,采用前序部分和后序部分表示该功能指令,其中该前序部分为一个16位二进制数,其中,16位二进制数中的b15b14为该指令组标识,(具体代码可以为IDb13表示指令扩展描述标识,(其中具体可以设置成b13=0表示指令没有扩展描述标识,b13=l表示有扩展描述标识),b12bnb1(lb9b8表示指令长度,bXbAbAbA表示指令代码;该后续部分具体为,该功能指令对应的数据类型的值。
[0052]具体的数据类型可以分为三种,分别为,变量地址、字符串和常数;
[0053]当为常数时,上述功能指令对应的数据类型的值具体可以为,采用至少二个16位二进制数表示该常数,第一个16位二进制数的b15b14b13b12保留,bnb1(lb9b8b7b6表示变量工作区,b5表示数据类型,表示变量类型,后续的16位二进制数表示该常数的值,例如如果常数为I,则该功能指令对应的数据类型的值为0x0FC4、0x0001。其中Ox表示16进制数。
[0054]当为变量地址时,上述功能指令对应的数据类型的值具体可以为,采用两位16位二进制数表示该变量,第一个16位二进制数的b15b14b13b12表示偏移地址指针索引,bnb10b9b8b7b6表示变量工作区,b5表示数据类型,(其中,b5=0表示二进制数,b5=l表示BCD数),b4b3b2b1b0表示变量类型;第二个16位二进制数表示变量地址。
[0055]当为字符串时,上述功能指令对应的数据类型的值具体可以为,采用至少二个16位二进制数表不该变量,第一个16位二进制数的b15b14b13b12bnb1(lb9b8b7b6b5表不所代表字符串的长度,b4b3b2b1b0表示变量类型;后续的16位二进制数表示字符串的值。
[0056]可选的,如该功能指令具有扩展描述标识,则后序部分还可以包括:扩展部分,该扩展部分为一个16位二进制数,其中b15表示指令的执行状态,b14表示上升沿执行、b13位表示下降沿执行、b12位表示立即执行,bn?Idci保留。
[0057]下面通过实际的例子来说明本发明提供方法的具体效果。
[0058]针对本发明的第O类指令(即短逻辑指令组)共有16条:
[0059]LD-逻辑位加载指令
[0060]LD1-逻辑非位加载指令[0061 ] LDP-上升沿逻辑位加载指令
[0062]LDF-下降沿逻辑位加载指令
[0063]AND—逻辑位与
[0064]AN1-逻辑位非与
[0065]ANDP-上升沿逻辑位与
[0066]ANDF-下降沿逻辑位非与
[0067]OR-逻辑位或
[0068]OR1-逻辑位非或
[0069]ORP-上升沿逻辑位或
[0070]ORF-下降沿逻辑位或
[0071]OUT—逻辑位输出
[0072]SET—逻辑位置位
[0073]RST-逻辑位复位
[0074]RS—RS 触发器
[0075]所有的边沿指令(上升沿和下降沿),在三菱PLC中都采用扩展指令方法,归属于b15b14b13b12=0的应用指令,指令长度为2个字和本发明的第2类指令相同。
[0076]第O类指令的变量有8个工作区,分别是:1 (相当于三菱的X)、Q (Y)、M、S、W (工作寄存器)、H (掉电保存寄存器)、TS (定时器状态)、CS (计数器状态)。每个工作区有256个位变量。
[0077]第2类指令(即标准逻辑指令组)是标准的位变量操作指令,和第O类指令相比,变量工作区增加到32个,指令数可以增加到32条,增加的指令有:
[0078]XOR-逻辑位异或
[0079]NOT—逻辑位非
[0080]R_TRIG—上升沿触发器
[0081]F_TRIG—下降沿触发器
[0082]ST-暂存位
[0083]逻辑地址(位变量地址)为16位二进制数或19位二进制数(加上指令标识中的3位备用位),最大可以寻址219=524288位变量,三菱的位变量最大值为1536+4096=5632。所以本发明提供的方法在采用第2类指令时,其位变量的范围比现有的三菱的位变量的范围提高了 93倍多。
[0084]第3类指令(即功能指令)是各种可变长度指令的集合,统称为功能指令,总共可以表示256条指令,这些指令分为几个大类:
[0085]比较指令如:CMP、GT(>)、QE (>=)、EQ ( = ), LT (<)、LE (<=);[0086]传送指令如:M0V、BMOV(块传送),FMOV, SMOV ;
[0087]算术与逻辑运算如=ADD (加)、SUB (减)、MUL (乘)、DIV (除)、INC (加I)、DEC (减1)、WAND (字与)、W0R (字或)、WX0R (字异或)、NEG (字非);
[0088]循环与位移如:R0R (循环右移)、R0L (循环左移)、RCR (带进位循环右移)、RCL (带进位循环左移)、SFTR (位右移)、SFTL (位左移);
[0089]第3类指令很多,还有程序流控制类、数据转换类、高速信号处理类、浮点数运算类,位置控制类、通讯类、时间运算类等等。
[0090]在三菱PLC的指令系统中,所有的功能指令都是以b15b14b13b12=0 (应用指令)或I(P应用指令)为首的指令,低12位为指令代码。
[0091]三菱的指令在描述字变量和双字变量时,其指令长度差很多,如:
[0092]MOV D0D2表示将DO (字-16位)传送到D2 (字-16位)中,三菱的二进制代码为:0x0028, 0x8600, 0x8600, 0x8604, 0x8600,共 5 个 16 位二进制字,每个变量 2 个 16 位二进制字,而DMOV D0D2表示将DlDO (双字-32位)传送到D3D2 (双字_32位)中,三菱的二进制代码为:0x0029, 0x8600,0x8600,0x8000,0x8000,0x8604,0x8600,0x8000,0x8000,共 9 个16位二进制字,每个变量4个16位二进制字,在指令的变量数越多时,三菱的二进制代码的数量占用就越多,与本发明提供的方案差别就越大。
[0093]例如:ZCPD0D100D200Y0 三菱二进制代码为:0x0026, 0x8600, 0x8600, 0x86C8, Ox8600,0x8690,0x8601,0x8400,0x8005,共 9 个 16 位二进制字。
[0094]DZCP D0D100D200Y0 三菱二进制代码为:0χ00270χ8600, 0x8600,0x8000,0x8000,Ox86C8, 0x8600, 0x8000, 0x8000, 0x8690, 0x8601, 0x8000, 0x8000, 0x8400, 0x8005, 0x8000, Ox8000,共17个16位二进制字。
[0095]在本发明的第3类指令中,这2种指令的长度是一样的,都是5个16位二进制字,不同的是二进制代码和助记符,分别表示如下:
[0096]字传送助记符M0V%DW0%DW2 本发明的二进制码为:0xC532, 0x088C, 0x0000, 0x088C,0x0002。共5个16位二进制字。
[0097]双字传送助记符M0V%DD0%DD2本发明的二进制码为:0xC532, 0x088F, 0x0000, 0x088F,0x0002。共5个16位二进制字。
[0098]所以本发明提供的方法在多字(32位或32位以上的二进制数)时,能够减少16位二进制字的数量,所以本发明的技术方案具有指令长度短,指令获取时间短,执行速度快的优点。
[0099]第3类指令只有在变量是常数时,指令长度才会有变化如:
[0100]M0V#15600%DW2 二进制码为:0xC532,0x0FC4、0x3CF0, 0x088C, 0x0002,共 5 个 16
位二进制字。
[0101]M0V#15678000%DD2 二进制码为:0xC632,0x0FC5、0x3A30, OxOOEF, 0x088F, 0x0002,共6个16位二进制字。
[0102]2)字区域比较指令 ZCP%DW0%DW100%DW200%Q0.0 二进制码为:0xC92C, 0x088C, Ox
0000,0x088C, 0x0064, 0x088C, 0x00C8, 0x0042, 0x0000,共 9 个 16 位二进制字,此时和三菱
的相同。
[0103]双字区域比较指令ZCP%DD0%DD100%DD200%Q0.0 二进制码为:0xC92C, 0x088F, 0x0000,0x088F, 0x0064, 0x088F, 0x00C8, 0x0042,0x0000,还是 9 个 16 位二进制字,三菱的是
17个16位二进制字,本发明的技术方案减少了 8个16位二进制字,所以缩短指令长度,指令长度缩短意味着存取指令的时间缩短,执行速度的提高。
[0104]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种可编程控制器的指令表示方法,其特征在于,所述方法包括: 如指令为短逻辑指令,则采用一个16位二进制数表示该逻辑指令,其中所述16位二进制数定义为:b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0,b15为最高位,bQ为最低位;其中,b15为该短逻辑指令组的标识,b14b13b12表示变量工作区,bnb1(lb9b8表示指令代码,表示逻辑变量地址,b7b6b5b4表示逻辑变量的字地址,b3b2b1b0表示字中的位地址; 如指令为标准逻辑指令,采用两个16位二进制数表示该标准逻辑指令,其中,第一个16位二进制数中的b15b14为该逻辑指令组的标识,b13表示指令执行状态,b12bnb1(l备用,b9b8b7b6b5表不变量工作区代号,!表不指令代码;第二个16位二进制数中的b15b14b13b12bnb10b9b8b7b6b5b4表示逻辑变量的字地址,b3b2b1b0表示字中的位地址; 如指令为功能指令,采用前序部分和后序部分表示该功能指令,其中所述前序部分为一个16位二进制数,其中,前序部分的b15b14为该指令组标识,b13表示指令扩展描述标识,b12bnb10b9b8表示指令长度,b7b6b5b4b3b2b1b0表示指令代码;所述后续部分具体为,所述功能指令对应的数据类型的值。
2.根据权利要求1所述的方法,其特征在于,所述功能指令数据类型包括: 变量地址、字符串和常数。
3.根据权利要求2所述的方法,其特征在于,所述功能指令对应的数据类型的值具体包括: 当为常数时,所述功能指令对应的数据类型的值具体可以为,采用至少两个16位二进制数表示该常数,第一个16位二进制数的b15b14b13b12保留,bnb10b9b8b7b6表示变量工作区,b5表示数据类型,b4b3b2b1b0表示变量类型,后续的16位二进制数表示该常数的值; 当为变量地址时,所述功能指令对应的数据类型的值具体为,采用两个16位二进制数表示该变量,第一个16位二进制数的b15b14b13b12表示变量偏移地址指针索引,bnb1(lb9b8b7b6表示变量工作区,b5表示数据类型,b4b3b2b1b0表示变量类型;第二个16位二进制数表示变量地址; 当为字符串时,所述功能指令对应的数据类型的值具体为,采用至少二个16位二进制数表不该变量,第一个16位二进制数的b15b14b13b12bnb1(lb9b8b7b6b5表不所代表字符串的长度,b4b3b2b1b0表示变量类型;后续的16位二进制数表示字符串的值。
4.根据权利要求1所述的方法,其特征在于, 如所述功能指令具有扩展描述标识,则后序部分还包括:指令扩展描述部分,所述指令扩展描述部分为一个16位二进制数,其中b15表示指令的执行状态,b14表示上升沿执行、b13表示下降沿执行、b12表示立即执行,bn~Idci保留。
【文档编号】G05B19/05GK103885377SQ201310412370
【公开日】2014年6月25日 申请日期:2013年9月11日 优先权日:2013年9月11日
【发明者】陈华兴 申请人:陈华兴
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1