CoDeSys的前世今生


       工作以及网上看到不少人说,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/"。





 

   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse中执行Ant脚本出现Could not find the main class的问题及解

试过了:https://blog.csdn.net/bookroader/article/details/2300337 但是不管用,偶然看到这篇没有直接关系的 https://blog.csdn.net/jiuyueguang/article/details/9350753 联想了一下。项目是JDK1.5,Eclipse是JDK1.8启动,所以在R…

视频通话研究002

还是关于视频质量。经測试,在公网server使用SQCIF(128x98)进行视频通话。2个client都是这个设置,感觉不出马赛克,模糊严重,在一个手机client抓包,例如以下: 第1,2行是client发到server的数据;第…

实力打脸: 量子隐形传输与 “瞬间移动” 毫无关系

有两个团队已经在量子隐形传输研究领域创造了新的传输记录:利用深不可测的量子力学知识将一个粒子的量子态迅速从一个位置迁移到另一个位置的粒子上。其中一个团队采用这种方法,运用一种光学纤维将一个光子的量子态穿越加拿大西南部的一个城市&#xff0…

Android初级教程:使用xml序列器

之前备份短信的时候生成xml都是手动拼写的&#xff0c;有一个问题&#xff1a;当短信里面存在</body>这样的标签的时候&#xff0c;最后结果就不是完整的xml文件&#xff0c;显然出错。但是&#xff0c;今天使用序列化器的方式&#xff0c;就能有效的解决上边遇到的问题。…

KUKA 声明变量时的几点注意

临时变量&#xff1a; 1、src文件中定义的局部变量&#xff0c;该种变量存在于内存中的栈上。子程序调用时&#xff0c;变量在栈上动态生成。调用结束后从栈中自动销毁。 因为存在于栈上的原因&#xff0c;访问该变量需要栈指针&#xff0c;所以该种变量无法在机器人程序运行时…

简单实现

1.创建接口和实现类 &#xff08;模拟实现查询天气&#xff09; 接口&#xff1a; package com.learning.weather;/*** * weather 接口 &#xff1a;实现模拟wsdl*/ public interface WeatherInterface {/*** 查询天气* param name* return*/public String queryWeather(Strin…

有关莫比乌斯反演

对于两个定义域为整数的函数F(x)和f(x); 若有: 然后F(x)可以快速求出&#xff1b; 如何用F求解f呢&#xff1f; 莫比乌斯反演&#xff1a; 对于两个定义域为整数的函数F(x)和f(x); 若有: 则有&#xff1a; 其中μ(x)为莫比乌斯函数&#xff0c;其定义为&#xff1a; 对于&#…

(原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null

html部分代码&#xff1a; JS部分代码&#xff1a; 需要实现的效果&#xff1a;点击图片&#xff0c;来回相互切换。 我开始的错误做法&#xff1a;代码如上图所示&#xff08;逻辑上看起来是没有错误的&#xff09; 尝试过程&#xff1a;把JS代码放在</body>闭合标签之前…

事务传播机制/数据库异常解析——2016-8-13分享总结

一. 事务的传播机制&#xff0f;required 跟 required new 的使用与区别 基础回顾 1.1 事务的隔离级别&#xff1a; ISOLATION_READ_UNCOMMITTED&#xff08;读未提交&#xff09; ISOLATION_READ_COMMITTED&#xff08;读已提交&#xff09; ISOLATION_REPEATABLE_READ&#x…

20155307 2016-2017 《Java程序设计》第三次实验报告

&#xff08;一&#xff09;敏捷开发与XP 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。从2001年开始&#xff0c;一些软件界的专家开始倡导“敏捷”的价值观和流程&#xff0c;他们肯定了流行做法的价值&#xff0c;但是强…

ElasticSearch创建、修改、获取、删除、索引Indice mapping和Index Template案例

为什么80%的码农都做不了架构师&#xff1f;>>> The best elasticsearch highlevel java rest api-----bboss ElasticSearch客户端框架bboss的ClientInterface 接口提供了创建/修改、获取、删除索引Indice和IndexTemplate的方法&#xff0c;本文举例说明其使用方法…

spring mvc注解@RequestMapping

1、url路径映射 基本功能 2、窄化请求映射 根路径子路径 注意setViewName的路径。 3、限制http请求方法 get和 post 如果是get 转载于:https://www.cnblogs.com/jway1101/p/5773923.html

老婆的驾照要下来了,形容下我此刻的心情

&#xfeff;&#xfeff; 老婆的驾照要下来了&#xff0c;形容下我此刻的心情&#xff1a; 路上遇到的女人&#xff0c;大部分是不用眼睛和脑子开车的&#xff0c;完全是凭自己的感觉开车。凡是看到前车奇慢、路口犹豫不决、不打灯缓慢变线、不该…

windows环境下OpenLDAP安装与客户端连接配置

2019独角兽企业重金招聘Python工程师标准>>> 1.下载安装OpenLDAP版本 C:\Users\Administrator>slapd -V OpenLDAP 2.4.42 Standalone LDAP Server (slapd) 2.安装过程中&#xff0c;全部用默认的操作执行即可。 3.修改OpenLDAP文件如下&#xff1a; # MDB Backen…

halcon标定后改变世界坐标系参考点方法

halcon相机标定完成后&#xff0c;世界坐标系原点在标定板的中间&#xff0c;如果要自定义坐标系原点该如何操作 如图&#xff1a; 方法1 使用仿射变换 *pose_to_hom_mat3d (FinalPose, HomMat3D) *hom_mat3d_translate_local (HomMat3D, dx, dy, 0, HomMat3DTranslate) *hom_…

KUKA---US2电源的安全属性-------老款硬线连接实现的DRIVE安全STO SBC 、新款基于Safety over EtherCAT 网络帧实现的DRIVE安全STO SBC

安全双回路的监控&#xff1a;&#xff08;工业上的安全&#xff0c;是指安全等级&#xff0c;没有绝对的安全&#xff09; 1. 机械式&#xff1a;监控关断继电器的辅助反馈触点&#xff0c;这个关断继电器包含机械联锁触点&#xff0c;这样反馈触点和主触点可以同步开关动…

X11硬线接口信号 与Profisafe安全输入输出信号之间的区别与比较

&#xfeff;&#xfeff;X11硬线接口信号 与Profisafe安全输入输出信号之间的区别与比较 Profisafe安全输入信号US2信号有待深入&#xff08;通过外部PLC &#xff1a;&#xff09; &#xfeff;&#xfeff;

var类型推断关键字

目录var 类型推断介绍var的一个例子&#xff1a;编程遵循规则var 类型推断介绍 使用var定义变量时&#xff0c;用var关键字替代实际类型。编译器可以根据变量的初始化值自行“推断”变量的类型。 例如&#xff1a; var A 0&#xff1b; 等价于 int A 0&#xff1b;var的一个…

斯坦福大学机器学习——高斯判别分析

转自 http://blog.csdn.net/linkin1005/article/details/39054023 同朴素贝叶斯一样&#xff0c;高斯判别分析&#xff08;Gaussian discriminant analysismodel, GDA&#xff09;也是一种生成学习算法&#xff0c;在该模型中&#xff0c;我们假设y给定的情况下&#xff0c;x服…