软件 | CoDeSys v3.5 SP4 官方安装免费版 |
内容 |
CoDeSys 3.5是一款非常好用且功能强大的plc编程工具,全称为Controlled Developement System,这个是最新版本,它为iec语言提供了一个简单的方法,支持IEC61131-3标准IL 、ST、 FBD 、LD、 CFC、 SFC等六种编程语言,并内置了强大的系统编辑器和调试器,本站提供了CoDeSys v3.5 下载地址,有需要的朋友们就来下载使用吧。 CoDeSys 3.5特色 CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言的基础上(如Visual C++)。 现在国内PLC用户使用的版本多为CoDeSys V2.3, 最新的版本是CoDeSys V3。 V3 在软件架构上有了很大的改善,朝安全软件的方向发展,目前正在申请TUV关于EN 61508的SIL认证。 CoDeSys软件还可以编辑显示器界面(Visualization),具有很多的控制模块(Motion),可以放置图片等强大的功能,典型的用户有ifm等。 CoDeSys功能总览:如何构建一个工程、怎么样构建一个工程、怎么样测试工程、调试、附加联机功能。CoDeSys的附加功能、工具等。 国内首家采用codesys平台的国产PLC 和声 HSC C3系列控制器也已大批量产业应用。 同时,也有运动控制厂家如:Scheider Electric, Banchman, GoogolTech在在使用Codesys平台开发自己的编程软件。 CoDeSys 软件商是德国Smart software solution GmbH,该公司位于德国巴伐利亚州肯普腾市。 功能介绍 CoDeSys框架组成 两部分: 1、CoDeSys IDE。 即CoDeSys集成开发环境,符合IEC61131编程规范,安装于PC机上,运行于Windows或者Linux下。由最终应用用户所使用的开发工具。 2、CoDeSys Runtime。 即硬件平台系统。需要设备制造商与3S公司共同完成,3S公司需要评估硬件开发商所设计的硬件系统,并为其定制CoDeSys Runtime框架,客户需要为此向3S付费。然后硬件及系统开发商需要根据本系统的外围输入输入等配置,编写相应的驱动,并以库或者PLC Configure接口的形式提供给CoDeSys ID开发环境调用。实际上就是形成一套Target安装包。此外,CodeSys还会对每个使用其CoDeSys Runtime的设备贴标,设备供应商需要为每个3S标牌付费,作为其知识产权的一部分。 3、最终用户(应用开发商)可以下载通用的CoDeSys IDE。 里面提供基本的IEC61131编程环境,但是对于一个具体的硬件PLC或者HMI,需要安装与该硬件相对应的Targets包。这个 Targets包的入口文件是*.tnf文件,有其来指定: 1、targets(*.tar)文件,对应 CoDeSys IDE的Target Setting项. 2、PlcConf文件夹下的*.cfg文件,对应CoDeSys IDE的PLC Configuration项。其安装路径由InstallTarget组件程序的Installation选项指定。反映在CoDeSys IDE上就是:Project\Options\Directories\Target\Configuration files: "**\*\PlcConf\"。 3、Lib文件夹下的诸*.lib文件,提供底层的CoDeSys Runtime的驱动接口。对应CoDeSys IDE的Library Manager。其安装路径由InstallTarget组件程序的Installation选项指定。反映在CoDeSys IDE上就是:Project\Options\Directories\Target\Libraries: "**\*\Libs\"。 上图,就是安装target的过程,也就是每个OEM厂家安装自己硬件的过程。 CoDeSys底层运行原理 Codesys runtime是建立在OS上的,常见的OS有wince,windows,linux,vxworks。构建在OS的优势就在于系统的扩展性更强,PC的更多功能都可以在PLC上实现。 control task被操作系统每隔一段时间(典型是1ms)调用一次。 IEC task被内建的看门狗监控,监视PLC的实际工作周期是否超出预定时间,如果超出则IEC task任务停止,向系统报告错误。 说到这里讲讲PLCOPEN的IEC 61131-3标准(这个IEC具体名字,网上现查的,方博士掌握的很好)。IEC 61131-3多任务操作系统,也没查到具体如何实现,自己之前做过嵌入式开发,了解OS以及RTOS,自认为和RTOS类似,热情高的朋友可以网上看看RTOS,重点是RTOS的优点是什么?欧洲的产品都很注重概念,概念理解了,就可以让你自由发挥。这里就多插一句,日系PLC在做大型项目时,还是和低端PLC一样,编程习惯类似汇编,编程上想要实现框架的概念非常难,因此在欧洲比较难推广。现在日系也在改进,加入了ST编程,使用了功能块,也算是日本人的妥协吧。 这里有几个概念: 优先级,数值越小优先级越高,根据任务的实时性,设定优先级 任务类型 循环:周期性执行任务 自由运行:只要启动程序就处理任务,CPU空闲就运行该task。 Event触发型:触发位的上升沿调用程序。外部事件触发功能,未定制的厂家此选项不能使用 看门狗(早期单片机上的一个概念,纺织程序进入死循环,提出了定时喂狗的概念,其本质就是一个减法定时器) 说说MCU如何使用watchdog吧。 while(1) { //用户自己写的程序 Watchdog = 10ms; //watchdog timer后台按照tick做减法,如果timer为0,就触发一个硬件中断,告诉用户程序在单位时间内没执行完,检查错误。正常则每次喂狗,设置timer为10ms } CoDeSys的watchdog定时监视PLC的实际工作周期是否超出预定时间,避免PLC在执行程序的过程中进入死循环,或者PLC执行非预定程序造成系统瘫痪。当任务超时,任务复位,进入初始状态,继续执行。 对比一下AB control logix的任务实现 control logix项目分为任务(task),程序(program)和例程(routine)。 任务(task):每个control logix控制器最多32个任务,仅有一个continuous任务,其余为Periodic或者event任务。 任务命名包括任务功能,优先级和执行周期 任务的三种类型: 1. 连续型任务,指的是周而复始连续执行的任务,一个项目只允许定义1个,亦可以不定义,等同于codesys中的PLC_PRG(POU)。 2. 周期型任务,定时中断执行的逻辑程序,需定义周期时间,设定优先级别,最多可以定义31个 3. 事件触发型任务,事件触发引起的任务调度,事件触发可以是外部输入点引起(如同PLC5/SLC),也可以由consumed tag引起或者直接指令调用引起,还可以由运动控制状态引起,需要设定优先级别,最多定义31个。 Control logix中的producer/consumer的概念非常好,体现在其组网能力上。比如某一个模块是消息的生产者,产生消息存放在消息块中,其他需要此变量的功能块,定义一个消息consumer即可。有兴趣的朋友可以自己看看相关资料。 CoDeSys的编程工具 IL 、ST、 FBD 、LD、 CFC、 SFC六种语言,我个人比较钟爱ST,CFC。 CodesysV2.3还是强调过程编程,到了V3.5则强调面向对象,C 的影子更多了。 言归正传,应用者也不需要关心那么多技巧,能实现功能,并且代码具有可维护性就是一个合格的工程师。 1.高级语言中的struct,union。 Stuct在西门子SCL语言中被称为UDT(user defined type),AB RSLogix 5000中也被称为UDT TYPE TRAFFIC : (RED, YELLOW:=1, GREEN:=10); END_TYPE TYPE STRUCT1 : STRUCT P1:INT; P2:INT; P3:INT; END_STRUCT END_TYPE 2.指针,c,c 中的顶级利器,在codesys中也可以使用 Example in ST: pt:POINTER TO INT; var_int1:INT; var_int2:INT; pt := ADR(var_int1); var_int2:=pt^; 3.FC,FB的概念 上述是CoDeSys说明书的例程,不知道看出有什么不同? FC在程序中直接调用即可,FB则需要先定义实例(instance),Instance: FUB。这里的Instance就是C 中的对象实例。怎么理解这个实例呢?上个最傻的高级语言的例子吧。 class Student { int age; int sex; int grade; void DoWork(void); }; Student tony, jany; tony.age = 10; tony.sex = male; tony.grade = 3; tony.DoWork(); jany.age = 9; jany.sex = female; jany.grade = 3; jany.DoWork(); 这里的DoWork就类似FB,可以看到FB带有自己独立的数据块,比如例中的age,sex,grade。 对比西门子S300/S400的FC、FB 1.FC不具备自己的存储区,FB有自己的存储区-背景DB。 2.FC和FB都有自己的TEMP变量,存储在系统的本地stack上。当FC和FB调用完毕,TEMP变量会释放。 3.FB有静态变量,FC没有。静态变量在背景DB中,FB调用完毕,静态变量仍然有效。 西门子300中,DB分为背景DB和共享DB,背景DB和FB相关联。 景DB和共享DB没有本质区别,它们的数据都可以被任何一个DB,FC或者FB读写。它们的区别在于使用目的:背景DB为FB提供数据,其数据格式和FB变量声明一致;共享DB目的为用户程序提供一个可保存的数据区。 如果对C比较熟悉,可以这样理解:FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。每次调用FC的I/O区域必须要自己每次手动输入,而FB就不要,省去不少麻烦,如果在上位机控制直接输入DB控制地址就可! 看到这里,大家再思索一下,德系PLC的编程思想虽然实现形式不同,但强调的概念都一样,一定要理解这些概念,才能熟练应用。 4.PLC_PRG PLC_PRG是一个预定义的POU(program of unit),每个工程必须包含这个特定的程序,这个POU在每个cycle中调用一次。其本质就是一个freewheeling程序。 如果使用了多任务,可以不包含PLC_PRG,按照任务配置表执行特定程序。 5.lib库的使用 Lib的使用体现了codesys高级语言的特性,支持math.lib,string.lib,canopen.lib,可以使用自定义的lib 用户自己实现的lib库,包含两种:Internal lib,External lib,有什么区别呢? 内部是完全利用CoDeSys实现的自定义lib库。外部库则需要利用相关的编译链去编译,更多被底层开发者所采用,可以直接利用OS底层的API进行编程,性能效率更高。 6.好用的case语句 CASE INT1 OF 1, 5: BOOL1 := TRUE; BOOL3 := FALSE; 2: BOOL2 := FALSE; BOOL3 := TRUE; 10..20: BOOL1 := TRUE; BOOL3:= TRUE; ELSE BOOL1 := NOT BOOL1; BOOL2 := BOOL1 OR BOOL2; END_CASE; case语句是我比较喜欢的功能,可以实现手动自动,可以实现多工位。 |
标签 | CoDeSys |
缩略图 | ![]() |
软件名称 | CoDeSys v3.5 SP4 官方安装免费版 |
软件图标 | |
软件大小 | 4KB |
发布时间 | |
软件平台 | |
软件语言 | 简体中文 |
软件授权 | 免费软件 |
操作系统 | Windows平台 |
系统类型 | |
用户评分 | 3 |
软件版本 | |
官方网站 | |
官方网址 | |
软件截图 | |
软件总类 | 电脑游戏 |
软件大类 | 软件下载-应用软件-编程开发-编程工具-CoDeSys3.5下载 |
软件小类 | 编程工具 |
开发者 | |
主办单位名称 | |
ICP备案名 | |
备案号 | |
使用年龄 | |
下载链接 | ![]() |
攻略教程 | |
详细介绍 | |
操控设备 | |
隐私政策 | |
查看权限 | |
敏感权限获取说明 | |
软件类型 | 国产软件 |
安全警示 | 适度休息有益身心健康,请勿长期沉迷于使用电脑或刷手机。 |
随便看 |
|
传承兰台文化,共同保存历史记忆!兰台网收藏软件、游戏、图片、图书、电影、电视剧等互联网档案,是免费和可借阅文本、电影、音乐等档案的数字图书馆。