工作以及网上看到不少人说,CoDeSys和西门子step7,在德国都属于标准过程,牛逼的小朋友都可以用其编程,不知真假,相信无风不起浪,多少有些依据,看看国內清一色的日系编程,我们是否需要换换脑子,换换思考方式了?CoDeSys类的编程能否达到这个目的?
CoDeSys是全球最著名的软PLC內核软件研发厂家德国的3S(SMART,SOFTWARE,SOLUTIONS)公司出的一款与制造商无关的IEC 61131-1编程软件。CoDeSys 支持完整版本的IEC61131标准的编程环境,支持标准的六种编程语言。是一个标准的软件平台,被很多硬件厂家支持,可編程超过150家OEM生产的自动裝置。CoDeSys提供了许多組合产品的扩充,诸如各种不同领域的总线配置程序、完全的目测化和运动控制系统。
CoDeSys是一種功能強大的PLC軟件編程工具,它支持IEC61131-3標準IL 、ST、 FBD 、LD、 CFC、 SFC六種PLC編程語言,用戶可以在同一項目中選擇不同的語言編輯子程序,功能模塊等。
CoDeSys是可編程邏輯控製PLC的完整開發環境(Controlled Developement System的縮寫),在PLC程序員編程時,CoDeSys為強大的IEC語言提供了一個簡單的方法,係統的編輯器和調試器的功能是建立在高級編程語言的基礎上(如Visual C++)。
現在國內PLC用戶使用的版本多為CoDeSys V2.3, 最新的版本是CoDeSys V3(目前最新版本為V3.5)。V3 在軟件架構上有了很大的改善,朝安全軟件的方向發展,目前正在申請TUV關於EN 61508的SIL認證。
HOLLSYS(和利時G3 PLC),Kinco(深圳步科F1 PLC),ABB AC500係列,IFM,EPEC,Rexroth,Wago,Parker,Beckhoff,Festo,施耐德等PLC廠家都是使用CoDeSys平台開發自己的編程軟件的。當然了,還有很多其他公司。
另外,CoDeSys也提供觸摸屏功能(Visualization),但這不是他的強項,基本都是采用OPC+工控機的方案,ABB,倍福都有很好的方案,都是麵向不差錢的客戶。
3S競爭者
CoDeSys的其他競爭對手還有KW、infoteam、ISAGRAF。聽說infoteam(國內稱一方梯隊)也挺牛的,不太了解,想說說KW,同屬於德國企業,主要是產品為multiprog。
KW的主要客戶有菲尼克斯的AutomationWorx、富士電機的D300Win、 研華的Multiprog,苞米勒的PLC和伺服係列,三菱應該也是它的大客戶,但是編程方式卻是按照日本人的習慣來的。
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/"。