CN112000062A - 一种基于数据流图的plc逻辑编程系统及编程编译方法 - Google Patents
一种基于数据流图的plc逻辑编程系统及编程编译方法 Download PDFInfo
- Publication number
- CN112000062A CN112000062A CN202010916714.2A CN202010916714A CN112000062A CN 112000062 A CN112000062 A CN 112000062A CN 202010916714 A CN202010916714 A CN 202010916714A CN 112000062 A CN112000062 A CN 112000062A
- Authority
- CN
- China
- Prior art keywords
- data
- programming
- data processing
- flow
- processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013500 data storage Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 20
- 239000000284 extract Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 abstract description 10
- 238000012795 verification Methods 0.000 abstract description 2
- 238000006243 chemical reaction Methods 0.000 abstract 4
- 230000007704 transition Effects 0.000 abstract 1
- 239000000463 material Substances 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13004—Programming the plc
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明涉及一种基于状态机的PLC逻辑编程系统及编程编译方法,具体是涉及一种用于离散行业的PLC逻辑编程的状态机编程系统及编程编译方法。所述基于状态机的PLC逻辑编程系统包括:状态机图,依据工控应用系统的控制过程建立若干状态,每个状态下可执行对应的控制逻辑,采用状态、转换条件、动作实现控制逻辑,经过完整性校验、编译生成可执行程序。所述状态依据工控应用系统的控制设备及设备协作的状态建立;所述转换条件依据工控应用系统的控制过程转换条件建立;所述动作基于每个状态或转换条件下要的执行任务建立。各个状态下可执行不同动作,达到某个转换条件时,可转到对应的状态。本发明的基于状态机的PLC逻辑编程编译方法,仅针对面向离散行业的PLC控制系统编程,简化离散行业控制变量繁多、控制逻辑复杂、调试运行过程费时费力的问题。
Description
技术领域
本发明涉及PLC的编程编译方法,具体是一种基于数据流图的PLC逻辑编程系统及编程编译方法。
背景技术
目前,PLC编程软件大多采用的是IEC61131-3规定的5种编程语言,包括IL、ST、LD、FBD和SFC语言,这几种语言在不同的应用下各有优点,但是都有一个统一的缺点,无法提供更好的逻辑验证方法,用户在编写完逻辑后需要连接仿真或控制设备调试逻辑,在面向流程行业的应用时,系统过个过程处理的调试困难,且无法有效判断编写完成的控制逻辑是否与预期目标一致,必须通过大量的调试测试过程验证,耗费极大的人力时间成本。为了解决面向流程行业PLC编程语言复杂验证调试困难、无法提供有效安全性检查的问题,本发明提出一种基于数据流图的PLC逻辑编程系及编程编译方法。
发明内容
本发明提供基于数据流图的PLC逻辑编程系统及方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于数据流图的PLC逻辑编程系统,包括:
(1)数据流图,依据面向流程行业工业控制系统的控制过程建立若干数据实体、数据流、数据处理和数据存储等对象,通过数据处理对数据流进行操作,并形成需要存储的数据存储对象,把结果返回给数据实体;
(2)进一步地,所述数据流图包含若干个数据流,数据流包括数据和数据的流向,由带方向的箭头和数据名称组成;数据流可从数据处理流向数据处理,也在数据处理与数据存储或数据实体之间流动;
(3)进一步地,数据流可采用符合IEC61131-3的数据类型如结构体或功能块编写;
(4)进一步地,所述数据处理表示对数据的操作,数据处理需要进行命名编号,以分辨每个数据处理在各个层次中的位置,数据处理采用圆角矩形,内有两条横线表示;
(5)进一步地,两个数据处理之间可以有多个数据流;
(6)进一步地,数据处理可以采用LD、FBD、ST、IL语言进行编程;
(7)进一步地,所述数据存储表示需要保存的数据,数据存储与数据处理的方向按照箭头指向包括“读取”和“写入”;数据存储采用右侧不封口的矩形,内部加横线分割成两个部分,左侧用于命名,右侧可添加描述表示;
(8)进一步地,所述数据实体是数据的使用者和提供者,说明数据的来源和输出的终点;数据实体采用矩形和折线组合表示;
(9)可选地,采用所述数据流图编写的控制逻辑可编译为在控制器上运行的目标程序;
(10)可选地,采用所述数据流图编写的控制逻辑编译完成后下装到控制器,可在线观察数据流、数据存储、数据处理的情况,并可通过手动或自动修改数据内容观察运行过程是否正确;如果数据处理与设计不一致,说明控制逻辑存在错误,需要调整。
本发明还提供一种基于状态机的PLC逻辑编程方法,所述编程方法包括如下步骤:
(1)依据控制系统设计流程分解出独立的功能,每个功能可提取出数据处理;
(2)依据提出的数据处理,提出数据处理对应你的输入数据流和输出数据流;
(3)设计每个数据处理需要存储的数据结构,形成数据存储对象;
(4)如果分解出的功能复杂,可对该功能分解出子数据流图,但需要保证分解出的子数据流图的输入数据流和输出数据流与上层对应的数据处理的输入数据流和输出数据流一致;
(5)编写每个数据流、数据存储和数据处理的具体控制逻辑,可采用LD、FBD、ST、IL语言进行编程实现;
(6)编译完成的数据流图工程生成目标程序,运行PLC控制器,进行控制逻辑调试;
相比较于现有的PLC编程语言方法,本发明的基于数据流图的编程系统及编程编译方法,面向流程行业的控制系统应用,通过依据向流程行业工业控制系统的控制过程分解控制功能,数据处理过程和数据流对象,依据数据的流向完成数据处理和数据存储,每个数据处理下编写数据的处理逻辑。并且对于复杂的控制功能可以分层编写控制流图,逐层细化控制过程。由此,可更清晰的实现控制逻辑,且数据处理可采用已有的编程语言编写,可面向不同习惯的用户;在调试运行时,由于数据处理过程清晰,可迅速准确的找到流程控制和数据流处理的问题,简化调试工作,节省人力物力。
附图说明
图1 描述本发明的基于数据流图的PLC逻辑编程系统示意图;
图2 描述本发明基于数据流图的PLC逻辑编程系统应用实例示意图;
图3 描述本发明的基于数据流图的PLC编程编译方法步骤流程图。
具体实施方式
为实现上述目的,本发明实施如下技术方案:
如图1、图2和图3所示,图1描述本发明的基于数据流图的PLC逻辑编程系统示意图,图2描述本发明基于数据流图的PLC逻辑编程系统应用实例示意图,图3描述本发明的基于数据流图的PLC编程编译方法步骤流程图。
本发明的基于数据流图的PLC逻辑编程系统,用于流程行业工业控制系统的PLC逻辑控制功能,所述基于数据流图的PLC逻辑编程系统,包括:
数据流图,依据面向流程行业工业控制系统的控制过程建立若干数据实体、数据流、数据处理和数据存储等对象,如图1所示,通过数据处理对数据流进行操作,并形成需要存储的数据存储对象,把结果返回给数据实体;
所述数据流图包含若干个数据流,数据流包括数据和数据的流向,由带方向的箭头和数据名称组成,如图1中的14;数据流可从数据处理流向数据处理,也在数据处理与数据存储或数据实体之间流动;
数据流可采用符合IEC61131-3的数据类型如结构体或功能块编写;
所述数据处理表示对数据的操作,数据处理需要进行命名编号,以分辨每个数据处理在各个层次中的位置,数据处理采用圆角矩形,内有两条横线表示,如图1中的13;
两个数据处理之间可以有多个数据流;
数据处理可以采用LD、FBD、ST、IL语言进行编程;
所述数据存储表示需要保存的数据,数据存储与数据处理的方向按照箭头指向包括“读取”和“写入”;数据存储采用右侧不封口的矩形,内部加横线分割成两个部分,左侧用于命名,右侧可添加描述表示,如图1中的12;
所述数据实体是数据的使用者和提供者,说明数据的来源和输出的终点;数据实体采用矩形和折线组合表示,如图1中的11;
采用所述数据流图编写的控制逻辑可编译为在控制器上运行的目标程序;
本发明还提供一种基于状态机的PLC逻辑编程方法,如图3所示,所述编程方法包括如下步骤:
依据控制系统设计流程分解出独立的功能,每个功能可提取出数据处理;
依据提出的数据处理,提出数据处理对应你的输入数据流和输出数据流;
设计每个数据处理需要存储的数据结构,形成数据存储对象;
如果分解出的功能复杂,可对该功能分解出子数据流图,但需要保证分解出的子数据流图的输入数据流和输出数据流与上层对应的数据处理的输入数据流和输出数据流一致;
编写每个数据流、数据存储和数据处理的具体控制逻辑,可采用LD、FBD、ST、IL语言进行编程实现;
编译完成的数据流图工程生成目标程序,运行PLC控制器,进行控制逻辑调试;
如图2所示,本发明采用产线加工物料缺料采购的流程实例来进行说明。根据控制系统设计流程分解出相对独立的功能,产线加工过程中,每个产线都有自己的物料清单,生产中会发生缺料情况,工人可根据缺少的物料提供采用物料清单,经过物料清单有效性检查的处理,如果有效则查询供应商列表输出有效采购清单,无效则返回无效清单给工人。有效清单生成后,进入采购处理,采购处理后生成发票。发票提供给数据记录处理,数据记录完成后,输出领取物流单给工人。本实例只设计一个数据实体Worker。
根据图3基于数据流图的PLC编程方法步骤流程图所示,步骤001 根据控制系统设计流程分解出相对独立的功能,提取出数据处理。如图2所示本实例ValidityReview、Purchase、Record三个数据处理。
根据图3所示,步骤002提取每个功能处理的数据内容形成数据流,如图2所示,本实例提取出OrderBOM、InvalidBOM、ValidOrderBOM、Invoice、GetBOM五个数据流;
根据图3所示,步骤003是设计每个数据流处理的数据存储,如图2所示,本实例包括 F1StockSheet、F2 BOMS_onEveryline、F3 BOMS_Supplyerlist三个数据存储;
根据图3所示,步骤004根据功能的复杂度分解子数据流图,本实例应用处理简单,不需要分解子数据流图;
根据图3所示,步骤005,对每个数据处理进行编程,具体如下:
1.数据流定义,采用ST语言结构体定义
TYPE
OrderBOM:
STRUCT
Name: String;
LackCount: int;
MatiralNo: int;
ProduceLine: int;
END_STRUCT
END_TYPE
TYPE
InvalidBOM:
STRUCT
Name: String;
LackCount: int;
MatiralNo: int;
ProduceLine: int;
END_STRUCT
END_TYPE
TYPE
ValidOrderBOM:
STRUCT
Name: String;
OrderCount: int;
MatiralNo: int;
ProduceLine: int;
SupplyerID: int;
END_STRUCT
END_TYPE
TYPE
Invoice:
STRUCT
Name: String;
OrderCount: int;
MatiralNo: int;
SupplyerID: int;
END_STRUCT
END_TYPE
TYPE
GetBOM:
STRUCT
Name: String;
GetCount: int;
MatiralNo: int;
ProduceLine: int;
END_STRUCT
END_TYPE
2. 数据存储定义,采用ST语言结构体定义
TYPE
F1:
STRUCT
Name: String;
StockCount: int;
MatiralNo: int;
END_STRUCT
END_TYPE
F1.Name := ‘StockSheet’;
TYPE
F2:
STRUCT
Name: String;
NeedCount: int;
MatiralNo: int;
ProduceLine: int;
END_STRUCT
END_TYPE
F2.Name := ‘BOMS_onEveryline’;
TYPE
F3:
STRUCT
Name: String;
MatiralNo: int;
SupplyerID: int;
SupplyerName: string;
END_STRUCT
END_TYPE
F3.Name := ‘BOMS_Supplyerlist’;
3. 数据处理编程,采用ST语言进行逻辑程序编写
(1)ValidityReview
//检验采用物料清单的有效性
if 物料还有库存 then
设置InvaliBOM输出流
elif 物料没有对应的供应商 then
设置InvaliBOM输出流
else
输出物料采用订单ValidOrderBOM
end_if
(2)Purchase
if 采购供应商信息更新 then
更新BOMS_Supplyerlist
end_if
进行采购Purchase();
开取发票输出Invoice;
(3)Record
录入Invoice,记录信息;
生成GetBOM列表;
根据图3所示,步骤006进行程序编译运行和调试。
采用所述数据流图编写的控制逻辑编译完成后下装到控制器,可在线观察数据流、数据存储、数据处理的情况,并可通过手动或自动修改数据内容观察运行过程是否正确;如果数据处理与设计不一致,说明控制逻辑存在错误,需要调整。调试运行过程可以方便、快速地排除故障,缩短了调试时间,减少人力物力浪费。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的范围内,能够轻易想到的变化或替换,都应涵盖在本发明权利要求的保护范围内。
Claims (3)
1.一种基于数据流图的PLC逻辑编程系统及编程编译方法,包括一种基于数据流图的PLC逻辑编程系统和一种基于状态机的PLC逻辑编程编译方法。
2.所述一种基于数据流图的PLC逻辑编程系统,特征在于包括数据流图,依据面向流程行业工业控制系统的控制过程建立若干数据实体、数据流、数据处理和数据存储等对象,通过数据处理对数据流进行操作,并形成需要存储的数据存储对象,把结果返回给数据实体;
所述数据流图包含若干个数据流,数据流包括数据和数据的流向,由带方向的箭头和数据名称组成;数据流可从数据处理流向数据处理,也在数据处理与数据存储或数据实体之间流动;所述数据处理表示对数据的操作,数据处理需要进行命名编号,以分辨每个数据处理在各个层次中的位置,数据处理采用圆角矩形,内有两条横线表示;两个数据处理之间可以有多个数据流;所述数据存储表示需要保存的数据,数据存储与数据处理的方向按照箭头指向包括“读取”和“写入”;数据存储采用右侧不封口的矩形,内部加横线分割成两个部分,左侧用于命名,右侧可添加描述表示;所述数据实体是数据的使用者和提供者,说明数据的来源和输出的终点;数据实体采用矩形和折线组合表示;采用所述数据流图编写的控制逻辑可编译为在控制器上运行的目标程序,下装到控制器,可在线观察数据流、数据存储、数据处理的情况。
3.所述一种基于状态机的PLC逻辑编程方法,其特征在于包括如下步骤:
步骤1:依据控制系统设计流程分解出独立的功能,每个功能可提取出数据处理;
步骤2:依据提出的数据处理,提出数据处理对应你的输入数据流和输出数据流;
步骤3:设计每个数据处理需要存储的数据结构,形成数据存储对象;
步骤4:如果分解出的功能复杂,可对该功能分解出子数据流图,但需要保证分解出的子数据流图的输入数据流和输出数据流与上层对应的数据处理的输入数据流和输出数据流一致;
步骤5:编写每个数据流、数据存储和数据处理的具体控制逻辑,可采用LD、FBD、ST、IL语言进行编程实现;
步骤6:编译完成的数据流图工程生成目标程序,运行PLC控制器,进行控制逻辑调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010916714.2A CN112000062A (zh) | 2020-09-03 | 2020-09-03 | 一种基于数据流图的plc逻辑编程系统及编程编译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010916714.2A CN112000062A (zh) | 2020-09-03 | 2020-09-03 | 一种基于数据流图的plc逻辑编程系统及编程编译方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112000062A true CN112000062A (zh) | 2020-11-27 |
Family
ID=73465430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010916714.2A Pending CN112000062A (zh) | 2020-09-03 | 2020-09-03 | 一种基于数据流图的plc逻辑编程系统及编程编译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000062A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728561A (zh) * | 2016-08-11 | 2018-02-23 | 苏州汉扬精密电子有限公司 | Plc编程系统及方法 |
CN108762751A (zh) * | 2018-05-31 | 2018-11-06 | 福州芝麻智能科技有限公司 | 一种逻辑图形组态及转成数据流的方法及系统 |
EP3647941A1 (en) * | 2018-11-02 | 2020-05-06 | Yokogawa Electric Corporation | Engineering apparatus, control method of engineering apparatus, and program |
-
2020
- 2020-09-03 CN CN202010916714.2A patent/CN112000062A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107728561A (zh) * | 2016-08-11 | 2018-02-23 | 苏州汉扬精密电子有限公司 | Plc编程系统及方法 |
CN108762751A (zh) * | 2018-05-31 | 2018-11-06 | 福州芝麻智能科技有限公司 | 一种逻辑图形组态及转成数据流的方法及系统 |
EP3647941A1 (en) * | 2018-11-02 | 2020-05-06 | Yokogawa Electric Corporation | Engineering apparatus, control method of engineering apparatus, and program |
Non-Patent Citations (1)
Title |
---|
朱志强: "《管理信息系统 原理、开发及应用》", 28 February 2007, 复旦大学出版社, pages: 132 - 133 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vogel-Heuser et al. | Modularity and architecture of PLC-based software for automated production Systems: An analysis in industrial companies | |
EP3304229B1 (en) | Method and system for generating plc code with a connectivity model | |
CN101470430B (zh) | 控制机床操纵的方法和控制机床的装置 | |
CN101968767A (zh) | 基于宏程序的代码调试及仿真的方法和装置 | |
EP2417498A1 (en) | Method for automatically partitioning a part program into fundamental operations | |
Lettner et al. | Feature modeling of two large-scale industrial software systems: Experiences and lessons learned | |
CN105676808A (zh) | 一种工业控制系统逻辑断点调试功能的实现方法 | |
Falkman et al. | Automatic generation: A way of ensuring PLC and HMI standards | |
Fischer et al. | Configuration of PLC software for automated warehouses based on reusable components-an industrial case study | |
CN112000062A (zh) | 一种基于数据流图的plc逻辑编程系统及编程编译方法 | |
CN111475159B (zh) | 一种自动生成程序的方法、装置及存储介质 | |
US11169510B2 (en) | Engineering system and method for planning an automation system | |
Lundgren et al. | Model-driven process planning and quality assurance | |
Sonnleithner et al. | Architectural concepts for IEC 61499-based machine controls: beyond normal operation handling | |
Hanselmann et al. | Automatic generation of production quality code for ECUs | |
JP4488226B2 (ja) | ラダープログラムの高機能部品化を実現するマクロプログラム | |
JP7328080B2 (ja) | 産業用機械のプログラムシミュレーションシステム及び数値制御システム | |
Kübler et al. | Test case generation for production systems with model-implemented fault injection consideration | |
Braun et al. | Object-Oriented Programming with SIMOTION: Fundamentals, Program Examples and Software Concepts According to IEC 61131-3 | |
Qamsane et al. | A tool support to distributed control synthesis and grafcet implementation for discrete event manufacturing systems | |
Banerjee | Utilization of FMEA concept in software lifecycle management | |
JP7392821B2 (ja) | 制御用ソフトウェアの自動テスト方法及び装置ならびにコンピュータプログラム | |
Ljungkrantz et al. | Practice of industrial control logic programming using library components | |
JPS62293305A (ja) | Faコントロ−ラのソフトウエア開発装置 | |
Lano | Using B to verify UML Transformations |
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 |