CN106200445B - 逻辑控制器的调试方法 - Google Patents

逻辑控制器的调试方法 Download PDF

Info

Publication number
CN106200445B
CN106200445B CN201510226609.5A CN201510226609A CN106200445B CN 106200445 B CN106200445 B CN 106200445B CN 201510226609 A CN201510226609 A CN 201510226609A CN 106200445 B CN106200445 B CN 106200445B
Authority
CN
China
Prior art keywords
program
logic controller
language
adjustment method
control program
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.)
Active
Application number
CN201510226609.5A
Other languages
English (en)
Other versions
CN106200445A (zh
Inventor
刘胜玉
隋振利
王迥波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Factory Automation Engineering Ltd
Original Assignee
Siemens Factory Automation Engineering Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens Factory Automation Engineering Ltd filed Critical Siemens Factory Automation Engineering Ltd
Priority to CN201510226609.5A priority Critical patent/CN106200445B/zh
Publication of CN106200445A publication Critical patent/CN106200445A/zh
Application granted granted Critical
Publication of CN106200445B publication Critical patent/CN106200445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

逻辑控制器的调试方法,包括在逻辑控制器的西门子编程框架下编写一个C语言控制程序(P1),且C语言控制程序(P1)包括至少一个程序变量;基于西门子的TIA‑Portal工程软件平台,编写一个使得平台控制程序(P2)连接于C语言控制程序(P1)的接口函数(P3),接口函数(P3)能够读取程序变量且由控制程序生成一个对应于程序变量的数据文件;在逻辑控制器中定义一个能够被远程访问的网络服务器界面,网络服务器界面能够连接至TIA‑Portal工程软件平台以读取数据文件,且网络服务器界面能够显示C语言控制程序(P1)的运行情况。

Description

逻辑控制器的调试方法
技术领域
本发明涉及一种程序调试方法,以监控程序中变量的状态,尤其涉及一种逻辑控制器的程序调试方法。
背景技术
C语言是一种通用的、过程式的编程语言,目前已应用于逻辑控制器中控制程序的开发,且由C语言变形的逻辑控制器控制程序具有高效、灵活、功能丰富、表达力强和较高的可移植性的特点。
发明人已知的逻辑控制器中,C语言编写的控制程序在运行时需打包成.so文件,无法对文件内的程序变量进行观测,亦无法对程序变量进行数据记录。当前对C语言编写的控制程序无法精确地调试,只能凭借编程工程师对于程序的熟悉程度,判断程序的运行结果,然后修改程序,这种方法大大浪费的工程调试时间,且无法精确判断问题点。
发明内容
本发明的目的是提供一种逻辑控制器的调试方法,以便于监测C语言编写的控制程序中的程序变量。
本发明的一个方面提供了一种逻辑控制器的调试方法,其中逻辑控制器中运行有一个基于西门子的TIA-Portal工程软件平台的控制程序。调试方法包括在逻辑控制器的西门子编程框架下编写一个C语言控制程序,且C语言程序包括至少一个程序变量;基于西门子的TIA-Portal工程软件平台,编写一个使得控制程序连接于C语言控制程序的接口函数,接口函数能够读取程序变量且由控制程序生成一个对应于程序变量的数据文件;在逻辑控制器中定义一个能够被远程访问的网络服务器界面,网络服务器界面能够连接至TIA-Portal工程软件平台以读取数据文件,且网络服务器界面能够显示C语言控制程序的运行情况。
使用逻辑控制器的调试方法,用户不需对西门子编程有特殊的培训,只需简单编写接口函数既能实现对C语言控制程序的调试监控。通过网络服务器界面监控C语言控制程序的运行,能够实现多个逻辑控制器的协同工作。在C语言控制程序的调试中,不需要获得C语言控制程序的源程序即可查看程序变量的状态。
在逻辑控制器的调试方法的再一种示意性的实施方式中,C语言控制程序在Eclipse编程环境下开发,且接口函数由西门子的SCL语言编写。
在逻辑控制器的调试方法的另一种示意性的实施方式中,运行情况包括C语言控制程序的程序运行时间、C语言控制程序的函数身份信息、程序变量的数值、和经过函数运算后函数变量的返回值。
在逻辑控制器的调试方法的又一种示意性的实施方式中,网络服务器界面设置有一个第一触发按钮,当访问网络服务器界面的一个远程终端触发第一触发按钮时,调试信息以文本文件的形式下载至远程终端。上述方式能够方便远程终端监控C语言控制程序的运行
在逻辑控制器的调试方法的又一种示意性的实施方式中,通过接口函数,控制程序能够读取程序变量中的全局变量,并记录全局变量在复数个C语言控制程序的程序循环周期中的变量值,且生成一个用于存储这些变量值的监控文本文件。
在逻辑控制器的调试方法的又一种示意性的实施方式中,接口函数能够生成与全局变量相对应的复数个地址信息,且平台控制程序通过地址索引的方式由地址信息读取全局变量的变量值。
在逻辑控制器的调试方法的又一种示意性的实施方式中,平台控制程序包括一个数据记录函数,数据记录函数通过地址索引的方式由地址信息读取全局变量的变量值。
在逻辑控制器的调试方法的又一种示意性的实施方式中,网络服务器界面设置有一个第二触发按钮,当访问网络服务器界面的一个远程终端触发第二触发按钮时,控制程序读取全局变量的变量值并生成监控文本文件。
在逻辑控制器的调试方法的又一种示意性的实施方式中,平台控制程序包括一个能够连接于C语言控制程序中数据记录函数的历史记录函数,历史记录函数能够记录C语言控制程序中全局变量在多个C语言控制程序的程序循环周期中的变量值。
在逻辑控制器的调试方法的又一种示意性的实施方式中,平台控制程序能够通过西门子的TIA-Portal工程软件平台自带的Trace功能函数记录C语言控制程序中全局变量在多个C语言控制程序的程序循环周期中的变量值。
附图说明
以下附图仅对本发明做示意性说明和解释,并不限定本发明的范围。
图1用于说明逻辑控制器的调试方法的功能架构。
图2显示了逻辑控制器的调试方法的流程。
图3用于说明逻辑控制器的调试方法另一种示意性实施方式的功能框架。
标识说明
10 工作存储区
20 装载存储区
30 访问存储区
40 远程终端
50 互联网
60 SCL语言环境
62 地址数据库
70 C语言环境
72 数据缓存区
P1 C语言控制程序
P2 控制程序
P3 接口函数
F1 数据记录函数
F2 历史记录函数
F3 数据函数。
具体实施方式
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示相同的部分。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。
为使图面简洁,各图中的只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。
在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
在本文中,“第一”、“第二”等仅用于彼此的区分,而非表示它们的重要程度及顺序、以及互为存在的前提等。
图1用于说明逻辑控制器的调试方法的功能架构。如图1所示,逻辑控制器的系统平台包括一个工作存储区10、一个装载存储区20、和一个访问存储区30。由C语言编写的逻辑控制器的C语言控制程序P1,以及基于西门子的TIA-Portal工程软件平台的逻辑控制器的平台控制程序P2运行于工作存储区10。
其中,C语言控制程序P1是在西门子定义的编程框架下编写。在逻辑控制器的调试方法一种示意性实施方式中,C语言控制程序P1是在西门子的Eclipse编程环境的框架下编写开发,从而使得C语言控制程序具有与西门子编程环境连接的接口。接口函数P3是基于西门子的TIA-Portal工程软件平台的框架下由SCL语言编写开发的。平台控制程序P2和C语言控制程序P1之间通过接口函数P3实现数据交换。
C语言控制程序P1和平台控制程序P2在运行中所生成的数据存储于装载存储区20。访问存储区30中存储有一个网络服务器(web server)界面,它能够被远程终端40远程访问。
图2显示了逻辑控制器的调试方法的流程。参见图2和图1,逻辑控制器的调试方法包括如下流程。
在步骤S10中,在西门子编程框架下,具体而言,基于西门子的Eclipse编程环境,使用C语言编写用于实现逻辑控制器控制的C语言控制程序P1。西门子编程框架的具体结构和要求可参见西门子全集成自动化软件平台的帮助文档。而后进入步骤S20。为了实现逻辑控制器的控制功能,C语言控制程序P1中涉及了多个程序变量,且这些程序变量的部分为全局变量。
在步骤S20中,基于西门子的TIA-Portal工程软件平台,使用SCL语言编写一个接口函数P3。接口函数P3使得C语言控制程序P1连接于平台控制程序P2,使得平台控制程序P2能够通过接口函数P3读取C语言控制程序P1的程序变量。另外,平台控制程序P2获取到C语言控制程序P1中程序变量的数值和参数后能够生成一个数据文件,且这个数据文件中存储有C语言控制程序P1中程序变量的数值和参数。这个数据文件反映了C语言控制程序P1执行到当前时间点的输出结果,从而可以达到对C语言控制程序的调试监视。这个数据文件存储于装载存储区20。而后进入步骤S30。接口函数P3的编写和使用可参见西门子全集成自动化软件平台的帮助文档,在此不再赘述。
在步骤S30中,在逻辑控制器中编辑定义一个网络服务器界面,这个网络服务器界面能够被远程终端40通过互联网50访问。网络服务器界面连接至TIA-Portal工程软件平台中运行的平台控制程序P2,具体的连接方法可参见西门子全集成自动化软件平台的帮助文档,在此不再赘述。通过网络服务器界面与平台控制程序P2的连接,网络服务器界面能够读取装载存储区20中存储的数据文件,从而使得远程终端40能够通过网络服务器界面显示C语言控制程序的运行情况。
使用逻辑控制器的调试方法,用户不需对西门子编程有特殊的培训,只需简单编写接口函数既能实现对C语言控制程序的调试监控。通过网络服务器界面监控C语言控制程序的运行,能够实现多个逻辑控制器的协同工作。在C语言控制程序的调试中,不需要获得C语言控制程序的源程序即可查看程序变量的状态。
在逻辑控制器的调试方法一种示意性实施方式中,C语言控制程序的运行情况包括C语言控制程序的程序运行时间、C语言控制程序的函数身份信息、程序变量的数值、和经过函数运算后函数变量的返回值。另外,网络服务器界面设置有一个第一触发按钮,当远程终端40点击第一触发按钮时,即第一触发按钮被触发时,C语言控制程序的运行情况以文本文件的形式传输下载至远程终端40,以方便远程终端40监控C语言控制程序的运行。文本文件可以采用CSV格式以方便查看。
在逻辑控制器的调试方法一种示意性实施方式中,通过接口函数P3,平台控制程序P2读取C语言控制程序P1中的全局变量,由平台控制程序P2记录这些全局变量在多个C语言控制程序P1的程序循环周期中的变量值。通过这些变量值,全局变量的变化趋势能够得到监控。平台控制程序P2将这些变量值保存至一个监控文本件,并将监控文本文件存储至装载存储区20。监控文本文件可以采用CSV格式以方便查看。
基于TIA-Portal工程软件平台,平台控制程序P2可以通过TIA-Portal工程软件平台自带的Trace功能函数获得全局变量在多个C语言控制程序P1的程序循环周期中的变量值,具体的设置方法可以参见TIA-Portal工程软件平台的帮助文档。
图3用于说明逻辑控制器的调试方法另一种示意性实施方式的功能框架。如图3所示,在SCL语言环境60中,除了接口程序P3外,平台控制程序P2还包括一个数据记录函数F1、一个历史记录函数F2、和一个地址数据库62。在C语言环境70中,C语言控制程序P1包括一个用于记录C语言控制程序P1中程序变量的数据函数F3和一个数据缓存区72。
C语言控制程序的每个一个全局变量都存储于数据缓存区72,且对应于每一个全局变量都具有一个存储地址。为了方便平台控制程序读取C语言控制程序的全局变量,接口函数P3能够生成与全局变量对应的地址信息,这些地址信息表示C语言控制程序中各个全局变量的存储地址,且这些地址信息存储于地址数据库62。
数据记录函数F1通过接口函数P3连接于数据函数F3,数据记录函数F1通过地址索引的方式,将地址数据库62中的地址信息传递至数据函数F3,由数据函数F3获取得到数据缓存区72中全局变量的变量值后在传递至数据记录函数F1。另外,历史记录函数F2同样通过地址索引的方式读取全局变量,并且记录全局变量在多个C语言控制程序P1的程序循环周期中的变量值。
在逻辑控制器的调试方法一种示意性实施方式中,网络服务器界面还设有一个第二触发按钮。当远程终端40点击第二触发按钮时,即第二触发按钮被触发时,平台控制程序P2开始记录全局变量在多个C语言控制程序P1的程序循环周期中的变量值,且监控文本件以文本文件的形式传输下载至远程终端40。
应当理解,虽然本说明书是按照各个实施方式描述的,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方案或变更,如特征的组合、分割或重复,均应包含在本发明的保护范围之内。

Claims (10)

1.逻辑控制器的调试方法,其中所述逻辑控制器中运行有一个基于西门子的TIA-Portal工程软件平台的平台控制程序(P2),所述调试方法包括:
在所述逻辑控制器的西门子编程框架下编写一个C语言控制程序(P1),且所述C语言控制程序(P1)包括至少一个程序变量;
基于西门子的TIA-Portal工程软件平台,编写一个使得所述平台控制程序(P2)连接于所述C语言控制程序(P1)的接口函数(P3),所述接口函数(P3)能够读取所述程序变量且由所述平台控制程序(P2)生成一个对应于所述程序变量的数据文件;和
在所述逻辑控制器中定义一个能够被远程访问的网络服务器界面,所述网络服务器界面能够连接至所述平台控制程序(P2)以读取所述数据文件,且所述网络服务器界面能够显示所述C语言控制程序(P1)的运行情况。
2.如权利要求1所述的逻辑控制器的调试方法,其中所述C语言控制程序(P1)在Eclipse编程环境下开发,且所述接口函数(P3)由西门子的SCL语言编写。
3.如权利要求1所述的逻辑控制器的调试方法,其中所述运行情况包括所述C语言控制程序(P1)的程序运行时间、所述C语言控制程序(P1)的函数身份信息、所述程序变量的数值和经过函数运算后函数变量的返回值。
4.如权利要求1所述的逻辑控制器的调试方法,其中所述网络服务器界面设置有一个第一触发按钮,当访问所述网络服务器界面的一个远程终端触发所述第一触发按钮时,所述调试信息以文本文件的形式下载至所述远程终端。
5.如权利要求1所述的逻辑控制器的调试方法,其中通过所述接口函数(P3),所述平台控制程序(P2)能够读取所述程序变量中的全局变量,并记录所述全局变量在复数个所述C语言控制程序(P1)的程序循环周期中的变量值,且生成一个用于存储这些变量值的监控文本文件。
6.如权利要求5所述的逻辑控制器的调试方法,其中所述接口函数(P3)能够生成与所述全局变量相对应的复数个地址信息,且所述平台控制程序(P2)通过地址索引的方式由所述地址信息读取所述全局变量的变量值。
7.如权利要求6所述的逻辑控制器的调试方法,其中所述平台控制程序(P2)包括一个数据记录函数(F1),所述数据记录函数(F1)通过地址索引的方式由所述地址信息读取所述全局变量的变量值。
8.如权利要求5所述的逻辑控制器的调试方法,其中所述网络服务器界面设置有一个第二触发按钮,当访问所述网络服务器界面的一个远程终端触发所述第二触发按钮时,所述平台控制程序(P2)读取所述全局变量的变量值并生成所述监控文本文件。
9.如权利要求1所述的逻辑控制器的调试方法,其中所述平台控制程序(P2)包括一个能够连接于所述C语言控制程序(P1)中数据记录函数(F3)的历史记录函数(F2),所述历史记录函数(F2)能够记录所述C语言控制程序(P1)中全局变量在多个C语言控制程序(P1)的程序循环周期中的变量值。
10.如权利要求1所述的逻辑控制器的调试方法,其中所述平台控制程序(P2)能够通过西门子的TIA-Portal工程软件平台自带的Trace功能函数记录所述C语言控制程序(P1)中全局变量在多个C语言控制程序(P1)的程序循环周期中的变量值。
CN201510226609.5A 2015-05-06 2015-05-06 逻辑控制器的调试方法 Active CN106200445B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510226609.5A CN106200445B (zh) 2015-05-06 2015-05-06 逻辑控制器的调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510226609.5A CN106200445B (zh) 2015-05-06 2015-05-06 逻辑控制器的调试方法

Publications (2)

Publication Number Publication Date
CN106200445A CN106200445A (zh) 2016-12-07
CN106200445B true CN106200445B (zh) 2018-09-25

Family

ID=57460178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510226609.5A Active CN106200445B (zh) 2015-05-06 2015-05-06 逻辑控制器的调试方法

Country Status (1)

Country Link
CN (1) CN106200445B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6891838B2 (ja) * 2018-03-15 2021-06-18 オムロン株式会社 開発支援装置、開発支援方法、および開発支援プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10030988A1 (de) * 2000-06-30 2002-01-10 Bosch Gmbh Robert Elektronisches System zur Entwicklung von Software und ein Verfahren zum Eingriff auf interne Daten der Software
CN103123598B (zh) * 2011-11-18 2015-03-18 中国科学院沈阳计算技术研究所有限公司 一种编译型软plc的在线调试实现方法
CN103136107A (zh) * 2011-12-03 2013-06-05 南京南瑞继保电气有限公司 一种嵌入式程序动态分配内存的变量调试方法
CN102722440B (zh) * 2012-06-07 2017-03-15 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN104268074B (zh) * 2014-09-05 2017-09-01 北京广利核系统工程有限公司 一种基于dcs系统应用软件在线调试方法
CN104503898B (zh) * 2014-11-24 2017-09-01 四川长虹电器股份有限公司 一种嵌入式软件调试参数实时查看的方法及系统

Also Published As

Publication number Publication date
CN106200445A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
US10572360B2 (en) Functional behaviour test system and method
CN104820640B (zh) 一种网页测试方法和装置
US5950006A (en) Object-oriented programmable controller
CN107077414A (zh) 用于生产调试的诊断工作流程
US7729786B2 (en) Natively retaining project documentation in a controller
US20070016829A1 (en) Test case generator
US20100115496A1 (en) Filter generation for load testing managed environments
CN109876445B (zh) 一种基于行为树的高解耦引导方法及系统
Kormann et al. Automated test case generation approach for PLC control software exception handling using fault injection
US20140214396A1 (en) Specification properties creation for a visual model of a system
WO2022182874A1 (en) System and method for using a graphical user interface to develop a virtual programmable logic controller
CN110704044A (zh) 一种可视化编程系统
CN107272441B (zh) 用于监控错误的方法和用于监控错误的数据处理装置
CN106094750A (zh) 分布式控制系统的模拟调试方法
Hofer et al. IEC 61131-3 software testing: A portable solution for native applications
CN106200445B (zh) 逻辑控制器的调试方法
Campos et al. A specification patterns system for discrete event systems analysis
Adiego et al. Model-based automated testing of critical PLC programs
CN110069414A (zh) 回归测试方法及系统
CN113220664B (zh) Lua脚本规则快速生成的卫星遥测智能判读系统及方法
Püschel et al. Testing self-adaptive software: requirement analysis and solution scheme
Thompson et al. An integrated development environment for prototyping safety critical systems
Wienke et al. Continuous regression testing for component resource utilization
US20240037016A1 (en) Computer readable storage medium, debugging support device, debugging support method, and machine learning device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant