CODESYS集成开发环境(CODESYS IDE)是整个自动化平台开发套件CODESYS中的核心部分之一,它几乎包含了一个先进的自动化编程开发工具应具有的所有功能。
1
CODESYS Development System概述
CODESYS Development System是符合IEC 61131-3标准的全球领先的控制系统编程开发平台。该开发系统将控制器应用的经典编程与工业4.0 / IIoT(工业物联网)环境中的专业的自动化软件开发功能相结合。我们的客户包括除了工厂自动化、能源自动化、嵌入式自动化、工程机械自动化、过程自动化和楼宇自动化在内的多个自动化行业的数十万终端用户(end-user)外,还有超过400多家的控制器制造商使用CODESYS软件开发控制器。
基于CODESYS开发的控制器产品
最终用户(End-user)使用CODESYS开发系统和一些可选的附加产品(后有详细介绍),可轻松实现逻辑控制、运动控制、可视化等应用程序的开发。其强大的功能以及统一的用户友好的开发界面使得最终用户在使用控制器时更加便捷。
CODESYS Development System编程界面
基于IEC 61131-3编程标准的编辑器
CODESYS编程软件做到了配置和调试都集成在一个工具中,所以CODESYS能够支持创建结构化和高效的应用程序;
提供了IEC 61131-3国际标准的六种编程语言:功能块图(FBD)、梯形图(LD)、指令表(IL)、结构化文本(ST)、顺序功能图(SFC)、连续功能图(CFC);
支持OOP、UML等面向对象编程语言;
CODESYS针对不同的CPU平台集成不同的编译器,减少了用户对硬件的依赖性;
以组件的形式集成了多种功能,同样支持用户通过组件的形式实现功能的扩展;
具有用户友好的开发界面,并且用户界面可在框架内进行扩展和个性化开发;
友好的IEC 61131-3编辑器编程方式。
配置器
可直接在CODESYS开发环境中的树状参数配置栏中对工程进行配置。可输入项目参数和配置数据,以及主站、从站设备和现场总线的参数;
可配置通用和特定I/O;
编译器
在编程输入时,自动检测并显示编译错误;
将应用程序代码编译为目标系统上的机器代码。CODESYS几乎支持用户工业应用的每个CPU系列;
对消息窗口中的应用和显示错误、警告、信息等作出分析;
该编译器支持布尔数据类型和模拟量数据类型,如整数类型、位变量型、时间和日期类型、浮点数类型、字符串类型等;
通过消息窗口直接导航到每个引用的程序行;
登录时可直接将应用程序传输到控制器。
调试器
只要CODESYS处于在线联机状态,他就可以快速高效地对目标设备进行调试、测试和试运行操作;
无需终止控制器的运行和面临承担丢失变量的风险,就可以实现应用程序中被修改部分的编译、下载和激活等操作,即可以实现在线修改;
无需连接控制器,支持在线仿真;
可设置条件、绝对断点和执行点;
在目标系统上循环记录变量值(采样跟踪)并在开发环境中显示;
可显示代码的执行顺序(流量控制);
CODESYS IDE在线调试功能
2
Automation Platform 开发平台中间件
CODESYS Automation Platform可以支持用户定制化开发CODESYS上位编程环境,经过客户的二次化开发以后,用户可以拥有自主知识产权的上位编程软件。CODESYS上位编程环境基于微软.net技术开发,CODESYS Automation Platform(自动化开发平台中间件)是以“CODESYS 接口工具包”的形式提供给客户的,即将CODESYS IDE的接口向用户开放,用户拿到这些接口之后可以做大量的二次化信息修改。简而言之,CODESYS支持和帮助用户开发出拥有自主知识产权的编程开发环境。
CODESYS Automation Platform具有以下功能和特点:
1
广泛的访问和设计能力
拥有用于对 CODESYS 对象进行编程访问的项目数据库。
拥有用于创建符号表、交叉引用、解析树和机器代码的代码生成器的编译器接口。
可与 CODESYS Runtime System 进行扩展通信的在线组件。
可在任何版本管理(安装、卸载)不同的插件。
访问 CODESYS 应用程序的全局设置。
许多易于使用的服务类,例如用于数据库对象的向前和向后兼容的序列化。
2
CODESYS Automation Platform 的典型示例
自定义功能,如视图、对话框、向导和实现语言;
附加功能,如现有软件的配置器和接口;
可执行单机软件,如项目文档、源代码的自动生成或无开发环境的控制器调试;
可开发系统的标签,例如名称、LOGO和功能范围;
典型的用户包括:施耐德的Somachine,倍福的Twincat,KEBA的KeStudio,博世力士乐的Indraworks等等都是基于CODESYS Automation Platform开发平台中间件做二次化开发。
Professional Developer Edition
CODESYS Professional Developer Edition是CODESYS专业版的集成开发环境的附加产品,可以通过集成附加组件的形式,实现对CODESYS IDE的功能扩展。CODESYS Professional Developer Edition包括:CODESYS SVN(版本管理器)、CODESYS UML(统一建模语言编辑器)、CODESYS Test Manager(自动化测试工具)、CODESYS Profiler(动态代码分析工具)、CODESYS Static Analysis(静态代码分析工具)。所有的CODESYS Professional Developer Edition工具是基于标准的C/C++语言进行设计的。他们可以单独使用,也可以集成在CODESYS内使用。具体介绍如下:
CODESYS SVN
CODESYS SVN是用于对当前和历史版本的文件(如源代码,网页和文档)进行版本控制和管理的工具,它通过与版本控制软件Apache™Subversion®的集成连接,实现了对源代码版本的控制和管理功能。
版本控制也称为源代码控制,是用于对文件、程序和其他信息的所有版本的维护和管理。版本控制广泛地应用于软件开发过程,随着时间的推移,文件逐渐产生多个版本。使用版本控制系统,开发人员可以返回到各个文件以前的修订版本,还可以任意比较两个版本以查看它们之间的变化。
CODESYS SVN的主要特点和功能包含以下几方面:
(1)更改日志:可以随时复制已做出的更改,并记录何时何地进行了哪些更改;
(2)恢复单个文件到旧版本,可以随时撤消错误的文件;
(3)对某一项目的具体修订内容归档;
(4)开发人员随时共享访问各个版本内容;
(5)开发人员可以对同一项目进行不同方向的开发;
(6)SVN中的对象状态能够直接可视化。
CODESYS SVN用于维护对象的一致性,可由多个用户共享。它们允许比较不同的修订版本或恢复对象到旧版本。如果将工程导入到CODESYS SVN中,则设备树中的覆盖图标显示对象的状态。
CODESYS UML
CODESYS UML作为CODESYS 专业开发工具的一部分,通过集成的UML(统一建模语言)编辑器来扩展了CODESYS开发系统的功能。UML(统一建模语言)是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。结构图用来说明软件的架构,以便于建模和分析。行为图是具有不同语法和语义的可执行模型,可直接生成应用程序代码。
CODESYS UML通过统一建模语言(UML)定义的类图和状态图的编辑器扩展了CODESYS开发系统的功能。下面将就类图以及状态图分别进行介绍。
类图属于UML结构图组。通过附加的图形编辑器,可以对CODESYS工程面向对象的结构进行说明或设计。通过图1可以看出,在编辑器中能够清楚地显示不同类所使用的变量或方法及其关系。
可以将现有的工程直接从CODESYS设备树导入到新的类图中。同时,也可以使用以下不同的类、对象以及关系元素从头开始新建工程,包括:类(POU)、接口、变量声明、属性、方法等。
状态图属于UML行为图组。图2为状态图编辑器,可以用来指定和设计离散事件序列。与类图相反,状态图编译过程中可以生成可执行应用程序代码。状态图编辑器中集成了一系列状态和转换元素,包括:开始状态、结束状态、状态图、复合结构图、Fork / Join网络、选择元素、转换元素等。
应用程序运行时的状态图按照PLC扫描周期进行切换,此外,可以使用所谓的内循环状态图来实现独立的切换行为。在联机模式下,状态图可以以动画形式显示,因此,可以随时监视序列的当前状态。
CODESYS开发系统中集成的UML类图编辑器
CODESYS Profiler
使用CODESYS Profiler,软件工程师和应用程序开发人员可以对IEC 61131-3应用程序中不同POU的处理时间和代码覆盖率进行前期测量和评估。这些测量可以在CODESYS软PLC或硬件设备上执行,而无需更改工程中的IEC 61131应用代码。应用开发和测量可以在同一个开发环境中同时完成。
CODESYS Profiler功能原理:
通过在开发环境中激活运行时间测量后,每个功能进入和退出时间通过检测代码进行动态测量。
根据PLC硬件平台和程序结构不同,代码运行时间延长10-50%。
通过变量或命令启动测量。
在CODESYS开发界面上清楚地显示测量结果。
CODESYS Profiler具有以下优势和特点:
可以在开发阶段就进行机器代码的性能和代码覆盖率测试。
及时通知运行时问题。
能够识别耗时多的程序部分以及未处理的语句。
用户不需要修改应用代码进行测量。
可集中或单次测量应用程序POU。
通过将历史测量值和当前测量值作比较来确定代码效率。
提高软件质量
CODESYS Profiler提供以下主要功能:
使用CODESYS Control Runtime测量控制器上的应用程序运行时间。
可以使用任何布尔变量作为条件进行执行。
使用“Profiler Watch List”进行单个POU或POU实例的运行时间测量。
检测每个POU中未处理的语句以及“代码覆盖率”。
使用CODESYS Profiler显示代码测量结果
CODESYS Static Analysis
作为CODESYS专业开发工具的一部分,CODESYS静态代码分析器扩展了CODESYS开发系统的功能,它是一种基于预定义规则来检查源代码的工具。
使用CODESYS静态代码分析器,除了可以检查编译器代码之外,还可以基于预定义的规则和命名规定来检查源代码。在检查过程中,可以显示出一些潜在开发问题的相关信息,并在应用程序进入现场测试之前消除错误。
在CODESYS静态分析器中,包含了超过100个预定义规则,其中一些规则是可配置的。该工具的功能完全集成在CODESYS开发系统中。
CODESYS静态分析器有助于避免编程过程中的错误,帮助用户获得执行效率更高、可读性更好的代码。例如,除了检查违反编码规则的代码之外,还可以检测到设备是否兼容。可以通过菜单命令启动应用程序的检查,或者在每次代码生成时自动启动。此外,可以使用pragmas和attributes来禁用对代码的特定部分的检查。
使用CODESYS静态代码分析器,可以通过多种规则来扩展CODESYS开发系统中已有的规则,例如:
1、检测无法执行到的代码;
2、寻找空对象;
3、寻找空语句;
4、检查无用的声明;
5、检查是否符合操作规则;
6、检查FOR和CASE声明规则;
7、检查程序是否严格符合IEC标准等。
CODESYS Test Manager
CODESYS测试管理器用来对CODESYS开发系统的应用程序和执行过程进行自动化测试。它是自动化测试的核心组件,主要用于测试应用程序和库。CODESYS测试管理器支持以下对象的测试:
1、应用程序
2、IEC库
3、通信
通过命令提供执行自动测试所必需的功能,我们将可配置的命令称为测试动作。一个测试用例通常由一个或多个测试动作组成,而多个测试用例则组成一个测试脚本。可以将测试报告和测试脚本保存到测试库中进行管理。
测试脚本开发步骤包括:
1、 定义测试库;
2、 创建测试脚本;
3、 创建测试用例或IEC单元测试程序;
4、 为每个测试用例定义测试动作;
5、 执行测试脚本并生成测试报告;
6、 将测试报告保存到测试库或将其导出为HTML报告。
测试用例也可以以IEC单元测试程序的形式实现,以上测试步骤可以用任何IEC语言编程实现,它们可以存储为CODESYS工程。在测试运行期间,该测试工程将自动包含在CODESYS测试管理器中。
在大多数情况下,测试脚本基于适用于测试对象的CODESYS工程。在测试运行期间,该工程被加载,并且执行准备步骤(即建立与控制器的通信)。测试对象(即应用)状态逐步变化,并将其行为与标称行为进行比较,比较结果总结在测试报告中。在完成测试运行之前,测试环境必须处于最终状态。生成的报告可以在测试库中进行管理。
CODESYS TestManager界面
上图为CODESYS测试管理器的界面,其中1为测试对象类别,2为测试脚本,3为测试用例,4为测试动作,5为命令类别,6为命令。
以下为几种常见的命令:
1、设备:选择网关和控制器。
2、项目:影响整个项目的命令(加载,关闭,保存...)。
3、在线:在线命令(启动,停止,重置..)。
4、监控:在线访问变量(读/写/比较值)。
5、测试报告:在测试报告中发布版本信息。
举例:
1、应用测试:首先加载测试项目“Bspdt.projectarchive”,准备动作完成后,将开始应用程序测试。该应用包含AS中的功能块,系统将会对其行为进行检查,然后测试环境将被调到一个结束状态(测试用例清理)。
2、计数器测试:测试项目“Counter Test.project”已经加载并且准备动作已经完成(测试用例准备)后,该工程中使用的计数器将被测试。然后,通过使用测试用例清理,测试环境将处于结束状态。
3、IEC单元测试:测试项目“Example_Iec Unit Test.project”已经加载并且准备动作已经完成(测试用例准备)后,开始进行IEC单元测试。首先使用编译指令生成应用程序,然后启动该应用程序。如在测试项目中需要编程的,则标称值将被测量并记录在测试报告中。然后应用程序和通信将会停止,该工程关闭。
测试完成后,将自动创建测试报告,测试报告主要包含:创建测试的时间、地点、人员等相关信息,版本信息,详细的测试结果等。测试报告以XML格式生成,可用于自动化分析。此外,报告可以导出为HTML格式。测试报告界面如下图所示。
自动生成测试报告
CODESYSY Test Manager具有以下特色:
(1) 可直接在IEC 61131-3或测试表中生成对话形式或者单元形式的测试用例;
(2) 拥有针对不同的项目的测试脚本和测试报告的中央存储和管理功能;
(3) 可以通过自动生成测试报告提高重复测试的效率;
能生成HTML格式测试报告以供查看,并以XML格式进行自动评估。
3
CODESYS Application Composer
应用程序设计器
CODESYS Application Composer是一种用于创建由循环功能块组成的应用程序的开发工具。使用CODESYS应用程序设计器,您可以借助现有的应用程序模块高效地进行控制器应用程序设计。
模块涵盖了CODESYS所有的工程事项,除程序代码之外,还包括可视化、参数配置和I/O映射。通过这些应用程序模块,Application Composer可以轻松实现CODESYS提供的几乎所有编程功能。
在CODESYS Application Composer树形结构的编辑菜单中,可以定制这些应用程序模块,在这个过程中,每个条目都对应于一个模块实例。同时,可以设置模块属性,在特殊编辑器中实现I/O链接和模块的参数化。另外,定序器模块的配置可以在一个易于使用的序列编辑器的帮助下进行。应用程序特定的代码可以以扩展模块的形式添加,再次生成代码时保持不变。
基于这些预定义模块,开发人员无需具备专业的编程知识,就可以开发出满足最终用户使用需求的设备应用程序。CODESYS Application Composer提供了一个简单易用的应用开发环境, 通过配置命令菜单生成完整的应用程序模块,从而将应用程序更容易地进行组合,而不再需要编写代码。通过购买功能许可证,您可以在CODESYS开发系统中创建和使用新的应用程序模块。
CODESYS Application Composer编程界面
4
C-Integration
如果应用开发人员对IEC61131-3标准的编程语言不熟悉,则可以通过附加组件C-Integration,设备制造商允许使用其设备的用户使用C语言开发应用程序,并轻松地将此代码集成到IEC 61131-3项目中。
通过使用C-Integration,最终用户可以将C代码无缝集成到IEC 61131-3标准的项目工程中,并轻松连接、编译和执行C代码以及IEC 61131-3应用程序,同时也支持集成已有的或已生成的C代码。
CODESYS C-Integration特点:
(1)属于CODESYS 附加产品;
(2)易于集成、生成、存储和执行IEC 61131-3项目中的C代码;
(3)自动生成在IEC 61131-3应用中使用C模块的接口。
(4)集成C代码编辑器。
(5)通过集成的更新机制,为外部C语言开发系统提供便利接口。
(6)在所有兼容设备平台上运行(V3.5 SP7及以上的版本)。
CODESYS C-Integration典型案例:
(1)重用现有的C算法;
(2)生成的C代码可用于Matlab Simulink等建模仿真工具;
(3)在设备专用库中连接预编译的C模块。
领取专属 10元无门槛券
私享最新 技术干货