CN110109703A - 小型plc中实现带静态数据功能的子程序 - Google Patents
小型plc中实现带静态数据功能的子程序 Download PDFInfo
- Publication number
- CN110109703A CN110109703A CN201910445064.5A CN201910445064A CN110109703A CN 110109703 A CN110109703 A CN 110109703A CN 201910445064 A CN201910445064 A CN 201910445064A CN 110109703 A CN110109703 A CN 110109703A
- Authority
- CN
- China
- Prior art keywords
- data
- plc
- pointer
- function
- subprogram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明公开了一种在小型PLC中实现静态数据功能的子程序的编程方法,利用PLC循环调用以及子程序无条件调用的特性,通过数据指针,给不同子程序的不同实例分配区域,实现了内部变量的存储功能。本发明为小型PLC做模块化标准化编程奠定了基础。
Description
技术领域
本发明涉及一种应用于小型PLC系统的编程技术, 特别是涉及西门子SIMATICS7-200 SMART的标准化模块化编程方法,属于计算机程序技术领域。
背景技术
现有的通用的技术方法,在S7-200 SMART之类的小型PLC中,如程序逻辑需要静态数据类型,要实现可重复被调用的子函数,只能通过添加INOUT变量接口的方法,除此之外没有见到有这方面的专利技术。使用INOUT借用外部变量的方法,程序使用过于繁琐,需要逐个分配变量地址,因而阻碍了小型PLC中模块化编程技术的发展。
发明内容
针对现有技术存在的不足,本发明的目的在于实现小型PLC能实现标准化模块化程序设计,编制的子程序可以重复使用,减少程序设计时复杂程度和工作量。
本发明解决了在小型PLC子函数中实现静态数据的功能。为小型PLC做模块化标准化编程奠定了基础。
技术方案:一种在小型PLC中实现静态变量的子函数的编程方法,在子函数逻辑的开始段和最后段,添加数据恢复以及保存的代码,静态数据存储在PLC寄存器区域中,每一次调用,位置自动累加,实现指针偏移。
如上所述的指针偏移,为了每个设备实例对应的偏移量固定不变,以达到对应的存储数据区地址恒定,需要在主程序的开始段有专门的对指针复位的处理。
如上所述的数据存储,其数据量为8个byte。
如上所述的数据存储,其数据量由每个函数的存储需求数量自由定义。
如上所述的存储在寄存器区域的数据,对位置无特殊要求,是随意存放的;如程序需要修改,比如设备增减引起的函数调用有增加或减少,数据位置改变后不需要特殊处理。
如上所述的数据偏移指针,其具体位置在函数输出中显示,用于程序调试时的数据诊断。
本发明的优点:
对函数中那些仅仅需要记忆功能,而外部程序不需要知晓的变量,可以简单分配存储区,简化了调用过程, 也节省了函数的外部接口。
本发明的方法,不仅对西门子S7-200 SMART小型PLC有效,而且可以适用于所有不支持静态变量的所有品牌的小型PLC,如果有特殊需要,也可以在中大型的PLC中实现。
附图说明
图1主程序开始调用了初始化模块,对地址指针进行了初始化。
图2 一个MOTOR模块被调用的实例。除了必要的输入输出接口,并不需要指定辅助类型的变量,输出的管脚对当前地址进行了监控。
图3 一个valve模块被调用的实例。除了必要的输入输出接口,并不需要指定辅助类型的变量,输出的管脚对当前地址进行了监控。
图4 一个定时器模块被调用的实例。
除了必要的输入输出接口,并不需要指定辅助类型的变量,因而也不需要指定编号,不同的实例调用过程是一样的。 输出的管脚对当前地址进行了监控。
具体实施方式
根据本发明提供的技术方法,完成了电机块的FB:L11-MOTOR 和阀门块的FB:L12-VALVE,以及初始化指针块L00-INI,示例中每个设备块均分配8个byte的存储区。
比如,一个项目中,有5个电机和5个阀门,它们的调用顺序是随机的,程序调用树如表1所示。
表1、一个在小型PLC中实现静态变量的子函数调用树示例。
首先在OB1的运行开始执行了初始化函数L00-INI,把位置指针复位到初始值10000,所以尽管OB1是无限循环运行的,但后面的每个设备分到的存储区地址是固定的,不会下个周期和上个周期的地址不同,表2示例了每个实例得到的分配地址。
表2、一个在小型PLC中实现静态变量的子函数寄存器地址分配表。
每个设备实例所得到的存储区地址如图2所示。这些地址在实例中起到了存储TEMP区域运行数据的作用,并在下次调用时用存储值刷新了TEMP区域的变量值。
因而实现了静态变量功能。
表3 另一个在小型PLC中实现嵌套调用静态变量的子函数的编程实施示例。
一个复杂逻辑块L31-MIXER, 自身分配双倍的数据区16个byte,而且其中还对另一个FB: L10-DI嵌套调用了2次,则在L31有3个实例的情况下,它们的数据区分配。同理这些地址分配都是固定的,不会错乱。 结果如表3所示。
以上所述只是本发明在S7-200 SMART PLC中实践实例,并不用以限制本发明。用其它型号、其它品牌的PLC所做的实现,改进等, 均应包含在本发明的保护范围之内。
Claims (6)
1.一种在小型PLC中实现静态变量的子函数的编程方法,其特征在于在子函数逻辑的开始段和最后段,添加数据恢复以及保存的代码,静态数据存储在PLC寄存器区域中,每一次调用,位置值自动累加,实现指针偏移。
2.根据权利要求1所述的指针偏移, 为了每个设备实例对应的偏移量固定不变,以达到对应的存储数据区地址恒定需要在主程序的开始段有专门的对指针复位的处理。
3.根据权利要求1所述的数据存储,其数据量为8个byte。
4.根据权利要求1所述的数据存储,其数据量由每个函数的存储需求自由定义。
5.根据权利要求1所述的存储在寄存器区域的数据,对位置无特殊要求,是随意存放的;如程序需要修改,比如设备增减引起的函数调用有增加或减少,数据位置改变后不需要特殊处理。
6.根据权利要求1所述的数据偏移指针,其具体位置在函数输出中显示,用于程序调试时的数据诊断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445064.5A CN110109703A (zh) | 2019-05-27 | 2019-05-27 | 小型plc中实现带静态数据功能的子程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910445064.5A CN110109703A (zh) | 2019-05-27 | 2019-05-27 | 小型plc中实现带静态数据功能的子程序 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110109703A true CN110109703A (zh) | 2019-08-09 |
Family
ID=67492295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910445064.5A Pending CN110109703A (zh) | 2019-05-27 | 2019-05-27 | 小型plc中实现带静态数据功能的子程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109703A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
CN102339031A (zh) * | 2010-07-27 | 2012-02-01 | 深圳市合信自动化技术有限公司 | 一种子程序调用的方法、装置及plc控制系统 |
CN103617060A (zh) * | 2013-12-05 | 2014-03-05 | 积成电子股份有限公司 | 使用超级状态存储加快嵌入式软件启动过程的方法 |
CN104239115A (zh) * | 2014-07-24 | 2014-12-24 | 汕头大学 | 一种plc编程语言的编译方法 |
CN104267999A (zh) * | 2014-09-26 | 2015-01-07 | 浙江中控技术股份有限公司 | 一种对控制程序进行编译的方法和装置 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
-
2019
- 2019-05-27 CN CN201910445064.5A patent/CN110109703A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
CN102339031A (zh) * | 2010-07-27 | 2012-02-01 | 深圳市合信自动化技术有限公司 | 一种子程序调用的方法、装置及plc控制系统 |
CN103617060A (zh) * | 2013-12-05 | 2014-03-05 | 积成电子股份有限公司 | 使用超级状态存储加快嵌入式软件启动过程的方法 |
CN104239115A (zh) * | 2014-07-24 | 2014-12-24 | 汕头大学 | 一种plc编程语言的编译方法 |
CN104267999A (zh) * | 2014-09-26 | 2015-01-07 | 浙江中控技术股份有限公司 | 一种对控制程序进行编译的方法和装置 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3781810A (en) | Scheme for saving and restoring register contents in a data processor | |
US20170220667A1 (en) | Independent data processing environments within a big data cluster system | |
US3229260A (en) | Multiprocessing computer system | |
US10967813B2 (en) | Vehicle control device | |
US4366536A (en) | Modular digital computer system for storing and selecting data processing procedures and data | |
CN107251001B (zh) | 具有双模式中断的微控制器或微处理器 | |
CN107832151A (zh) | 一种cpu资源分配方法、装置及设备 | |
CN115237599A (zh) | 一种渲染任务处理方法和装置 | |
CN109657317B (zh) | 一种cpld管脚分配的方法、系统及设备 | |
CN109446130A (zh) | 一种i/o设备状态信息的获取方法及系统 | |
CN110109703A (zh) | 小型plc中实现带静态数据功能的子程序 | |
CN109408035B (zh) | 一种业务系统的流程配置方法、存储介质和服务器 | |
CN108897532B (zh) | 一种类工厂注册的方法、装置及电子设备 | |
CN114493980B (zh) | 内核函数传输方法、装置及设备 | |
CN106484642B (zh) | 一种具有运算能力的直接存储器访问控制器 | |
US6493781B1 (en) | Servicing of interrupts with stored and restored flags | |
US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
US20220197647A1 (en) | Near-memory determination of registers | |
CN112988639B (zh) | 一种模块地址分配方法及装置、数据交互系统 | |
CN111651124A (zh) | Ssd映射表多核分区并行重建方法、装置、设备及介质 | |
CN110874368A (zh) | 一种基于Realm数据库的数据分页系统及方法 | |
CN107589909B (zh) | 数据处理方法和装置、电子设备 | |
US20190205161A1 (en) | Multicore or multiprocessor computer system for the execution of harmonic tasks | |
US20220283812A1 (en) | System and method for shared register content information | |
US11593079B2 (en) | System and method for responsive process security classification and optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190809 |