用于单片机的可编程逻辑控制系统的编程设计方法

文档序号:10470595阅读:1432来源:国知局
用于单片机的可编程逻辑控制系统的编程设计方法
【专利摘要】一种用于单片机的可编程逻辑控制系统的编程设计方法,包括步骤:准备一个装有逻辑控制程序设计软件的开发平台和装有可运行“逻辑控制程序”的控制器;确定控制逻辑的逻辑输入向量、逻辑输出向量、定时输入向量等;设计逻辑关系表达式;将逻辑关系表达式转换成标准“与或”式;根据标准“与或”式,设计“与”矩阵、“或”矩阵、“非”矩阵;将设计出的控制矩阵通过控制器通讯接口,传输到控制器。本发明无需操作系统支持,无需解释型语言支持,对硬件资源要求极低,是适合普通单片机的逻辑可编程技术,将大大降低单个控制器的成本,代码可移植,运行速度快,容易扩展成多个控制器的协同控制系统。
【专利说明】
用于单片机的可编程還辑控制系统的编程设计方法
技术领域
[0001] 本发明设及单片机编程,特别是一种用于普通单片机的可编程逻辑控制系统的编 程设计方法。
【背景技术】
[0002] 工业用可编程逻辑控制器(简称为化C)自出现W来,发展迅速,在工业控制系统中 广泛应用。用于功能强大,可靠性高,通用性强,通常具有大量的输入输出接口,连接各种传 感器和控制器,而化C内通常采用强大的单片机,具有足够多的内存和外围电路,PLC支持多 种编程方式,可W实现复杂的逻辑控制,因此,通常工业化C的成本较高、体积较大,适合作 为主控制器。
[0003] 由于物联网技术的兴起,在智慧农业、智能交通、智能建筑、智能家居等网络环境 下需要配置大量的传感器和控制器,因此对运些装置的体积、成本、功耗都提出要求,运些 传感器、控制器的分布,相对于工业控制系统来说,更加分散,但控制逻辑比较简单,对控制 器的体积、功耗和成本提出较高的要求;而真正的分布式控制系统往往对主控制器要求很 低,而更多的是将控制功能下放到底层的节点,运样一来功能强大的集中控制的化C就不能 适应市场需求了;同时运种分布式控制系统,对每个底层的设备提出了控制逻辑可编程的 需求。
[0004] 常规单片机的程序一般服务于一种特定功能,改变程序功能,目前通常用Ξ种方 法:
[0005] 1、采用专用编程工具,由专业人员重新设计源代码,经过编译后,使用专用开发工 具下载到单片机;
[0006] 2、在单片机的存储器中设置很多可修改的参数,运样单片机的程序不变,但可W 通过修改参数,一定程度上可修改单片机系统的功能;
[0007] 3、采用解释型语言的方法,开发人员在电脑上完成解释型语言的编程后,将代码 发给单片机,运行时,由单片机逐条解释运行,运种方式需要单片机中有相应的代码解释程 序,PLC多采用运种方式。
[000引第一种方法的缺点是非专业的人员难W使用,且需要对软硬件系统非常熟悉开发 人员才能胜任;第二种方法的缺点是程序功能可修改的范围很小,仅适合功能相对固定控 制器,无法做到通用;第Ξ种方法的缺点是对单片机要求较高,需要一定的运算速度和大量 存储空间,且代码运行效率较低,所W,通常的化巧旨令执行周期是20毫秒。
[0009] 因此,如果有一种无需操作系统支持,无需解释型语言支持,对硬件资源要求极低 的,适合普通单片机的逻辑可编程技术,将大大降低单个控制器的成本,为物联网的普及创 造更加有利的条件。

【发明内容】

[0010] 本发明针对上述现有技术的不足和现实需求,提出一种用于普通单片机的可编程 逻辑控制系统的编程设计方法,该方法,不需要专业的嵌入式系统开发经验,即可进行编 程;而且下载到单片机内的用户代码,仅需通过通讯接口,不需要专口的编程接口;下载到 单片机的代码可W被立即执行,不需重新启动;用户代码执行速度非常快,小于200微秒,远 快于普通PLC的20毫秒;用户代码不依赖于单片机,可W在不同的单片机上运行,具有可移 植性;用户代码的执行程序简短,仅占用很少的资源。
[0011] 本发明中控制器输入向量由控制器输入引脚信号组成;远程输入向量由其他控制 器通过通讯接口传输到本控制器的信号组成;定时输出向量,由控制器内定时程序控制,其 每个信号的定时常数存储在"定时常数矩阵"内,控制器定时程序,检测每个定时输入条件, 当由0变为1时,启动定时,计数到定时常数时,输出由假变为真;软件控制向量由控制器其 他软件部分输出的控制信号组成;控制器输出向量每个成员用于直接连接控制器信号输出 电路;远程输出向量的每个成员,可将该信号通过通讯接口发送给其它控制器;软件输出向 量用于将运算的结果发送给本控制器软件的其他部分。
[0012] 本发明用到了多个矩阵,其中"与矩阵"的作用是根据"与或"标准式最小与项,选 择"逻辑输入向量"的成员或其成员的"非",进行"与"运算;"或矩阵"的作用是根据"与或" 标准式各项,选择"与项向量'的成员,进行"或"运算;"非矩降'的作用是根据需要,选择"或 项向量"的成员,进行"非"运算。
[0013] 由于是逻辑运算所有的矩阵和向量成员都是布尔变量,因此可W用BYTE或整型来 存储多个变量,而向量或矩阵的运算,可W借助单片机的逻辑运算功能完成,运样既可W同 时实现多个布尔变量的并行计算,大大提高运算速度。
[0014] 本发明应用于可编程逻辑控制系统。可编程逻辑控制系统如图6所示:系统由若干 个可编程控制器联网组成,每个可编程控制器有n(n.含0)个控制器输入端口和m(m.含0)个 控制器输出端口。运些控制器通过通讯接口连接在一起,每个控制器的输出端口的状态是 由控制器自身的输入端口的状态、其他控制器输入或输出端口状态及一些其他状态变量的 逻辑表达式决定;运些端口的状态可用〇|1的逻辑符号表示。为了方便表述和计算,我们将η 个输入端口的状态用控制器输入向量表述,将m个输出端口的状态用控制器输出向量描述, 其它的向量的概念也是类似的含义。图6中显示的是3个具有2个控制器输入端口和2个控制 器输出端口的可编程逻辑控制系统,每个控制器输入端口连接一个开关,每个输出端口连 接一个指示灯,根据本发明,只要向控制器下载对应的用本方法设计的"程序",即可让每个 灯的亮灭由控制器输入向量的逻辑组合来控制。
[0015] 本发明的"程序开发"是通过如下步骤实现的:
[0016] 步骤一:准备一个装有逻辑控制程序设计软件的开发平台(如计算机或手机等)和 一个W上装有可运行"逻辑控制程序"的控制器。
[0017] 步骤二:确定控制逻辑的逻辑输入向量和逻辑输出向量及定时输入向量,
[0018] 设计逻辑输入映射矩阵选择控制器输入向量、远程输入向量、定时输出向量、软件 控制向量、逻辑输出向量的一部分成员组成逻辑输入向量;
[0019] 设计逻辑输出映射矩阵用于将逻辑输出向量复制给部分控制器输出向量、远程输 出向量、软件输出向量的一部分成员。
[0020] 设计定时输入映射矩阵W选择控制器输入向量、远程输入向量、软件控制向量、逻 辑输出向量的一部分成员组成定时输入向量;
[0021] 再设计定时常数矩阵,确定每个定时器的延时时间;
[0022] 步骤根据要实现的控制器功能,设计逻辑输入向量与逻辑输出向量的逻辑关 系表达式;
[0023] 步骤四:将逻辑关系表达式转换成标准"与或"式:根据数学原理,所有逻辑控制可 W用逻辑表达式描述,并都可W简化成"与或"标准式;
[0024] 步骤五:根据"与或'标准式中各"与"项,设计"与"矩阵;根据"或"运算,设计"或" 矩阵;再根据输出要求,设计"非"矩阵;
[0025] 步骤六:将设计出的"逻辑控制程序",即:"与矩阵"、"或矩阵"、"非矩阵"、"逻辑输 入映射矩阵"、"逻辑输出映射矩阵"、"定时常数矩阵"、"定时输入映射矩阵"等数据,通过控 制器通讯接口或其他转存设备,传输到控制器。
[0026] 本发明的控制器中"逻辑控制程序"按照如下流程运行:
[0027] 步骤一:同步锁存控制器输入向量、远程输入向量、定时输出向量、软件控制向量、 逻辑输出向量的当前值,根据逻辑输入映射矩阵将选择的变量,复制给逻辑输入向量。
[0028] 步骤二:逻辑输入向量和"与矩阵",经过逻辑运算,得到标准"与或式"的各最小 "与项",从而得到"与项向量";
[0029] 步骤"与项向量"与"或矩降'经过逻辑运算,得到标准"与或式'的"或耶',从而 得到"或项向量';
[0030] 步骤四:"或项向量",经过与"非矩阵"的运算,得到逻辑输出向量。
[0031] 步骤五:逻辑输出向量经过逻辑输出映射矩阵,将运算结果复制分别给控制器输 出向量、远程输出向量、软件输出向量,完成控制的一次运行。
[0032] 本发明的有益效果在于:
[0033] 1、根据逻辑控制设计"与或非"矩阵,比较直观,对于开发人员来说无需编程基础;
[0034] 2、根据本方法设计的"与或非"矩阵就是用户的"程序",可W作为数据下载到控制 器中,无需修改控制器程序。
[0035] 3、本方法设计的"程序"与采用的单片机无关,与操作系统也无关,便于移植。
[0036] 4、本方法设计的"程序"的执行过程,只有单纯的逻辑运算,低端的单片机都能胜 任。
[0037] 5、本方法设计的"程序",执行速度快,仅需几百个机器周期,而且复杂"程序"和简 单"程序"消耗同样的机器周期,"程序"执行时间可预期,便于精确的时间控制。
[0038] 6、由于采用矩阵运算的方式,所有输入端口、输出端口同时动作,无需专口的同步 指令。
[0039] 7、本方法设计的"程序",可W方便实现延时控制,可W方便地替代延时继电器,实 现具有延时功能的逻辑控制。
[0040] 8、本方法设计的"程序"还具有与其他控制器协同工作的能力,借助虚拟输入端口 和虚拟输出端口,可W和其他的控制器间自动传输数据。
[0041] 9、对于单个控制器功能简单,而多个控制器间有复杂协同逻辑控制的系统,本方 法具有易于实现的优势,且实现成本更低。
【附图说明】
[0042] 图1是控制逻辑编程流程图
[0043] 图2是逻辑矩阵运算流程图
[0044] 图3是输入映射矩阵的流程图
[0045] 图4是定时矩阵工作流程图
[0046] 图5是输出映射矩阵的流程图
[0047] 图6可编程逻辑控制系统
【具体实施方式】
[0048] 下面结合附图和实施例对本发明作详细说明。
[0049] 实施例
[0050] 设计具有Ξ个控制器A、B、C的系统,每个控制器有两个输入信号(分别为Ail,Ai2, 611,812,(:11,(:12)、两个输出信号^〇1,4〇2,8〇1,8〇2,(:〇1,(:〇2)、两个定时器^11,412, 611,812,机1,机2)、两个远程输入信号^'1,4'2,8'1,8'2,灯1,灯2,两个远程输出信号 ^31,432,831,832,〔31,〔32),两个软件控制信号^(:1,4。2,8(31,8。2,抗1,抗2),两个软件 输出信号(Adi,Ad2,Bdl,Bd2,Cdl,Cd2),
[005。 Col控制逻辑是:Col =瓦Τ+丽;Bol控制逻辑是:定时器化1在Ail为"真"后经过 时间T,输出"真"信号,且Bol =Bti ?Bii ;
[0052] 考虑控制器B的"程序"的实现,按照本发明方法:
[0053] 步骤1:准备一个装有逻辑控制程序设计软件的开发平台和装有可运行"逻辑控制 程序"的控制器B;
[0054] 步骤2:确定控制器B的逻辑输入输出:控制器B的逻辑输入向量为{inl,in2,tml}, 逻辑输出向量为{outl,out2},定时输入向量为{tml,0};
[0055] 因此输入映射矩阵为:
[0063] 步骤3:设计逻辑关系表达式:
[0064] outl =雨+歷
[00化]ou检= tml第扣2
[0066] 步骤4:化成"与或'标准式,
[0067] 〇山1 =inl十in2 二 ini 技in2
[006引 οια2 = 1,?Ι ?bil = btl&bil +bll &bil
[0069] 因此输入向量为:
[0070] Bil,化1!τ
[007。 步骤5:设计控制矩阵:考虑到"与矩阵"还需要和逻辑输入向量"非"的运算,
[0072]因此;
[007引步骤6:将设计出的"与矩阵"、"或矩阵"、"非矩阵"、"逻辑输入映射矩阵"、"逻辑输 出映射矩阵"、"定时常数矩阵"、"定时输入映射矩阵"通过控制器B的通讯接口,传输到控制 器B;
[0079] 采用字节存储的方式,输入映射矩阵需要有6字节,输出映射矩阵需要2字节,定时 输入映射矩阵需要2字节,定时常数矩阵需要2字节;与矩阵需要3字节,或矩阵需要2字节, 非矩阵需要1字节,合计18字节,
[0080] 上述"编程"过程中,步骤二、步骤Ξ可采用图形化交互设计技术,方便快速开发, 步骤四、步骤五、步骤六可交由开发平台软件自动完成,运样可W简化"编程"过程,提高效 率。
[0081 ]控制器执行程序时,按照如下步骤进行:
[0082] 步骤一、锁存控制器的输入向量瓦=巧il, Bi巧T
[0083] 锁存远程输入向量品二巧rl, Βι·2}Τ
[0084] 锁存定时输出向量品二巧tl| BCf
[0085] 锁存软件控制向量品={Bel., Bc2}T
[0086] 锁存逻辑输出向量Bo二巧〇1,Βο2}Τ
[0087] 因此,可W得到逻辑输入向量:
[008引 廊=Aii'商,品,坑品.而V= !Ail, Bil,Btl}T
[0089] 步骤二:计算"与项向量':品品
[0090] 特别的是,"与矩阵"中,值为"Γ表示,成员参与"与'计算,为"0"表示不参与"与" 计算,因此实际计算中,需要做特别处理:
[0091 ] i^di=Aand .丽=! Ail & 化 1, Bil &雨?,丽'& βΖ:].}Τ [oow] 步骤立:计算"或项向量"扁?
[OOW] 長品=Α〇Γ.官品3 = {Ail &技? 1, Bil叛忍巧+丽&技tl}T
[0094]步骤四:计算逻辑输出向μ.:反品
[00Μ] 将需要品?.这项与Anot的对应成员异或;
[0096] Bout[n] = Αηο?[η] 0Bor[n]
[0097] 于是; Bou^fAil & Bil, Bil &長巧 + 面?& 应[巧了
[009引 ={五订+廣T, BU思Btlf
[0099] 步骤五:映射输出。
[0100] 控制器输出向M,·丽=巧〇1., Βο2}Τ
[0101] 远程输出向量馬=巧5-1,852}1
[0102] 软件输出向量前二巧化£3(3印
[0103] 根据输出映射矩阵计算:
[0104] .! Bo, Bs, Β(? I.「= Aoi .技(Htt
[0105] 因此:
[0106] 品二 |Bil. @Bri,0}T
[0107] 馬二师-!-丽,0}Τ
[010引琼的成员Bol被直接赋值Bii a化1,状态即刻发生变化;而馬的成员Bsl状态 励+願通过通讯接口发送至对应控制器C后,将改变控制器C的Col引脚信号状态。
[0109] 程序运行过程就是不断重复步骤一至步骤五。
[0110] 虽然W上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,运些 仅是举例说明,在不背离本发明的原理和实质的前提下,可W对运些实施方式做出多种变 更或修改。因此,本发明的保护范围由所附权利要求书限定。
【主权项】
1. 一种用于单片机的可编程逻辑控制系统的编程设计方法,其特征在于,包括如下步 骤: 步骤1)准备一个装有逻辑控制程序设计软件的开发平台,根据任务选定由多个可编程 控制器通过联网组成可编程逻辑控制系统; 步骤2)确定每个可编程控制器的逻辑输入向量、逻辑输出向量、定时输入向量、逻辑输 入映射矩阵、逻辑输出映射矩阵、定时常数矩阵和定时输入映射矩阵; 步骤3)根据所述的可编程控制器的输入量和输出量之间的逻辑关系,设计相应的逻辑 关系表达式; 步骤4)将步骤3)得到的逻辑关系表达式转换成"与或"式; 步骤5)根据步骤4)得到的"与或"式,设计控制矩阵,即:与矩阵、或矩阵、非矩阵;与矩 阵的行数对应"与或"式的个数,与矩阵每行的成员中为1则对应位置逻辑输入向量成员参 与与计算;与矩阵每行的成员中为〇则对应位置逻辑输入向量成员不参与与计算;或矩阵的 行数对应逻辑输出向量成员个数;或矩的每行成员中为1则,对应位置与项向量成员参与 "或"运算;或矩的每行成员中为0则,对应位置与项向量成员不参与"或"运算;非矩阵的成 员个数与逻辑输出向量成员个数相等;"与或"式中需要用到"非"运算则对应非矩阵成员为 1;"与或"式中无需"非"运算则对应非矩阵成员为0; 步骤6)将控制矩阵从相应的控制器的通讯接口输入控制器。2. 根据权利要求1所述的用于单片机的可编程逻辑控制系统的编程设计方法,其特征 在于,该方法还包括如下步骤: 步骤7)同步锁存所有控制器的输入向量、远程输入向量、定时输出向量、软件控制向量 和逻辑输出向量,得到逻辑输入向量; 步骤8)将步骤7)得到的逻辑输入向量和"与矩阵"的每一行按下列规则进行'与运算', 得到一个与项元素,所有的与项元素构成'与项向量': 如果"与矩阵"中元素为1,则对应的逻辑输入向量中的元素参与与计算,参与'与计算' 的所有元素经过'与计算',得到与项元素; 如果"与矩阵"中元素为0,则对应的逻辑输入向量中的元素不参与'与计算'; 步骤9)将步骤8)得到的与项向量与"或矩阵"的每一行按下列规则进行'或运算',得到 一个或项元素,所有或项元素构成'或项向量': 如果"或矩阵"中元素为1,则对应的与项向量中的元素参与或计算,参与'或计算'的所 有元素经过'或计算',得到或项元素; 如果"或矩阵"中元素为0,则对应的与项向量中的元素不参与'或计算'; 步骤10)将步骤9)得到的或项向量和非矩阵的每一行按下列规则进行逐项异或运算: 如果非矩阵中某元素为0,逻辑输出向量对应元素等于对应的或项向量元素;如果非矩 阵中某元素为1,逻辑输出向量的对应元素等于对应的或项向量元素的'非'; 步骤11)将步骤10)得到的逻辑输出向量经过逻辑输出映射矩阵,将运算结果复制给控 制器输出向量、远程输出向量和软件输出向量,控制器输出向量的状态变化,将改变本控制 器的输出端口的电平;远程输出向量的变化,将被发送到其他控制器。改变其他控制器的输 出端口状态;软件输出向量,则被用来控制本控制器中其他软件部分运行。3. 根据权利要求1或2所述的用于单片机的可编程逻辑控制系统的编程设计方法,其特 征在于,所述的控制矩阵包括与矩阵、或矩阵、非矩阵、逻辑输入映射矩阵、逻辑输出映射矩 阵、定时常数矩阵和定时输入映射矩阵。4. 根据权利要求1或2所述的用于单片机的可编程逻辑控制系统的编程设计方法,其特 征在于,所述的"与"矩阵的由元素0或1组成。5. 根据权利要求1或2所述的用于单片机的可编程逻辑控制系统的编程设计方法,其特 征在于,所述的"或"矩阵由元素0或1组成。6. 根据权利要求1或2所述的用于单片机的可编程逻辑控制系统的编程设计方法,其特 征在于,所述的"非"矩阵的元素由元素0或1组成。
【文档编号】G05B19/05GK105824285SQ201610142839
【公开日】2016年8月3日
【申请日】2016年3月14日
【发明人】赵春宇, 朱成刚, 喻志成
【申请人】上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1