amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 1051|回复: 15

[请教]有熟悉PLC开发的坛友谈谈编译型和解析型PLC系统吗?

[复制链接]
发表于 2018-9-25 20:55:23 | 显示全部楼层 |阅读模式
帖子的题目是:[请教]有熟悉PLC开发的坛友谈谈编译型和解析型PLC系统吗?

如题,想了解一下目前的业界对于PLC系统的实现方式是偏向于解析型还是编译型?
在本坛的【开源PLC】版块找了一下,没有找到早期的“开源PLC”的帖子,可能挖的不够深;
然后找到了坛友发的这个帖子:https://www.amobbs.com/thread-5646768-1-1.html
应该是将以前的“开源PLC”的代码移植到了STM32上。
看了下,是解析型的,代码是控制器端的虚拟机,主要解析了FX1N系列的指令的中间码格式,然后进行对应的处理。

对于编译型和解析型系统的理解如下:
  编译型 = PLC编程语言 --> 底层编程语言 + runtime (+ 硬件BSP) --> HEX文件 --> ISP或IAP方式下载到目标系统
  解析型 = PLC编程语言 --> 翻译成中间码 --> 通信下载到目标系统固定存储区域 --> 目标系统运行VM(虚拟机,也叫解析器吧),不断解析执行中间码

不知道理解是否有误?从事或熟悉PLC研发的坛友来指点一下?
P.S. 其实楼主比较好奇编译型和解析型系统对于 【监视(Monitor)】和【调试(Debug)】的实现方式……
发表于 2018-9-26 11:49:34 来自手机 | 显示全部楼层
现在cpU速度高。解析型简。
 楼主| 发表于 2018-9-26 14:01:08 | 显示全部楼层
john78 发表于 2018-9-26 11:49
现在cpU速度高。解析型简。

是说解析型简单吧?
的确解析型的系统只要实现虚拟机和中间码的转换就已经完成了大部分工作,
但解析型系统对比于编译型系统始终是效率偏低的,解析中间码也是要耗些时间的。

老哥,有没有知道编译型的PLC?倍福、西门子那些的PLC是哪种类型?
发表于 2018-9-26 14:29:12 | 显示全部楼层
编译型的不好弄,
需要把梯形图编译为单片机的二进制码。
发表于 2018-9-26 15:14:00 来自手机 | 显示全部楼层
落叶知秋 发表于 2018-9-26 14:01
是说解析型简单吧?
的确解析型的系统只要实现虚拟机和中间码的转换就已经完成了大部分工作,
但解析型系 ...

三菱是编译型。最大特点是能给出每个指令的执行时间。
 楼主| 发表于 2018-9-26 15:20:34 | 显示全部楼层
hzpyl 发表于 2018-9-26 14:29
编译型的不好弄,
需要把梯形图编译为单片机的二进制码。

编译型的确会复杂一些,要涉及到芯片的BSP代码,链接工具等,
不过其实解析型的系统也是要涉及这些的,只不过厂家出货前就烧录好而已,
而编译型的是要集成在IDE里面去。

不知道这样理解对不对?
 楼主| 发表于 2018-9-26 15:26:48 | 显示全部楼层
john78 发表于 2018-9-26 15:14
三菱是编译型。最大特点是能给出每个指令的执行时间。

三菱的编译型PLC是哪个系列?
最大特点是能给出每个指令的执行时间

这句话的意思是?
发表于 2018-9-26 15:27:58 | 显示全部楼层
看看codesys这个软件,德国3S公司的,这两天一直在看这个。
发表于 2018-9-26 15:48:21 | 显示全部楼层
落叶知秋 发表于 2018-9-26 15:20
编译型的确会复杂一些,要涉及到芯片的BSP代码,链接工具等,
不过其实解析型的系统也是要涉及这些的,只 ...

解析型,把梯形图用单片机的C程序,解析一下。
而编译型,你得用上位机软件把梯形图编译为单片机的二进制程序。
发表于 2018-9-26 15:50:21 | 显示全部楼层
john78 发表于 2018-9-26 15:14
三菱是编译型。最大特点是能给出每个指令的执行时间。

大哥,三菱的是解释型的好吧,三菱FX1N FX2N代码满天飞。。。
 楼主| 发表于 2018-9-26 16:03:30 | 显示全部楼层
dongyulei 发表于 2018-9-26 15:27
看看codesys这个软件,德国3S公司的,这两天一直在看这个。

codesys这个软件听过,也是一个框架(framework)了,倍福、西门子都买来做二次开发
有没有资料可以共享出来学习一下?
 楼主| 发表于 2018-9-26 16:05:07 | 显示全部楼层
hzpyl 发表于 2018-9-26 15:48
解析型,把梯形图用单片机的C程序,解析一下。
而编译型,你得用上位机软件把梯形图编译为单片机的二进制 ...

嗯,那我的理解应该没有太大偏差
发表于 2018-9-26 19:07:31 来自手机 | 显示全部楼层
qtechzdh 发表于 2018-9-26 15:50
大哥,三菱的是解释型的好吧,三菱FX1N FX2N代码满天飞。。。

那是山寨解释的。三菱pLC手册中有每条指令的执行时间。山寨不到这种效果(严格说,很难)。我也山寨过。解释型和编译(其实用FpGA解释)
发表于 2018-9-27 14:14:04 | 显示全部楼层
john78 发表于 2018-9-26 19:07
那是山寨解释的。三菱pLC手册中有每条指令的执行时间。山寨不到这种效果(严格说,很难)。我也山寨过。解 ...

那有可能是三菱用一个专用处理器做了一个硬件解析,其实本质上还是一个解释性的语言。不知道我理解的对不对。
另外MCU来做解析,每个执行的执行时间也可以计算出来的呢。
 楼主| 发表于 2018-9-27 16:15:33 | 显示全部楼层
CODESYS Runtime概述
       为了使硬件设备可以使用基于IEC 61131-3标准的编程环境CODESYS IDE进行编程,必须在对应的硬件设备中移植CODESYS Runtime System。CODESYS Runtime System为工业级的实时操作系统内核,通过在硬件平台上移植CODESYS Runtime System,可以将任何嵌入式设备或基于PC的设备转变为符合IEC61131-3标准的工业控制器。
       CODESYS代码执行机制为编译执行,即在CODESYS IDE中编写的IEC代码,通过集成的编译器编译为机器代码,再通过网线或串口下载到CODESYS Runtime 里。CODESYS Runtime可以调动硬件平台的资源(如时钟资源、内存资源等)来处理这些指令。3S公司的技术工程师负责将CODESYS Runtime部署到客户选用的硬件平台上,并且我们开放CODESYS Runtime接口,支持用户作二次开发。
       CODESYS Runtime 可完成以下主要任务:
     (1)下载和执行基于IEC 61131-3的应用程序;
     (2)应用程序的调试和监控;
     (3)执行对I/O的操作;
     (4)与CODESYS 编程系统通信;
     (5)与其他从站设备通信;
     (6)路由控制器网络中的数据信息

       此外,该实时运行系统还包含重要的附加组件,如现场总线、运动控制、可视化等,以便您的控制器可以与工业现场中的其他组件进行通信或实现其他复杂的功能。
       CODESYS Runtime可跨平台运行,即可部署到不同架构和不同操作系统的硬件平台上。CODESYS Runtime支持的一些标准的CPU包括:
     (1)Intel 80x86;80186,Pentium,Atom(32位或64位)等;
     (2)ARM Based CPUs(ARM 7,ARM 9,ARM 11等)
     (3)ARM Cortex CPUs(M3/M4,A8/A9,A15,A53等)
     (4)PowerPC

      CODESYS Runtime同样也可部署到以下目标设备中:
    (1)Infineon Tri Core
    (2)Renesas RZ/N1, RX
    (3)Analog Devices Blackfin
    (4)NXP (Freescale) Cold Fire
    (5)Texas Instruments DSP C2xxx / 28x

      CODESYS Runtime支持的操作系统包括:
    (1)Windows,Windows CE
    (2)Linux (OSADL real-time expansion)
    (3)Vx Works
    (4) QNX
    (5)无操作系统或小操作系统(如uCOS,eCOS,freeRTOS)

  CODESYS Runtime Toolkit
      CODESYS Runtime Toolkit是一个全面的可编程控制器软件开发工具包。CODESYS Runtime可以将任何嵌入式平台或工业PC转化为基于IEC 61131-3标准的控制器,并且开放Runtime接口,用户可以根据行业需求及功能需要进行二次化开发。因此,CODESYS Runtime Toolkit支持用户开发出具有自主知识产权的控制器产品。
      对于最终用户来说,可以直接使用基于CODESYS Runtime开发的控制器,并使用CODESYS IDE(集成开发环境)进行项目应用。对于OEM客户来说,可以使用CODESYS Runtime Toolkit工具包基于多种平台和需求开发自己品牌的控制器,并支持定制化开发需要的功能。
      CODESYS Runtime Toolkit工具包的供货范围包括:
    (1)CODESYS Runtime(实时运行系统)的源代码或部分源代码,具体取决于用户所选用的硬件平台;
    (2)I/O驱动程序和库的源代码示例;
    (3)有关CODESYS Runtime移植到目标系统的完整文档;
    (4)特定的硬件设备的实时运行系统所需的基本组件和附件组件;
    (5)由我们经验丰富的工程师进行培训,以帮助客户将CODESYS实时运行系统移植到目标设备上。
      CODESYS Runtime移植过程如下:
    (1)安装带有可用的基本组件和附加组件的CODESYS实时运行系统工具包;
    (2)通过引导工具配置和选择实时运行系统所需功能的组件
    (3)配置操作系统接口,实现定制驱动程序或集成的附加功能(外部库),连接外部系统等;
    (4)将所有组件链接和编译到可执行的实时运行系统,并在目标设备上实现运行;
    (5)在CODESYS IDE中提供用于设备使用的驱动程序(设备描述文件)。

  CODESYS PLCHandler
      PLCHandler为第三方的客户端和基于CODESYS开发的PLC之间建立通讯,PLCHandler封装了完整的底层通信协议,并提供了一个API接口。该API接口提供对所有可用功能和服务的访问。
      PLCHandler提供以下功能和服务:
    (1)建立或终止与PLC的通信。
    (2)读取PLC的变量列表。
    (3)循环读取PLC变量。
    (4)同步读取PLC变量值。
    (5)同步将变量值写入PLC。
    (6)实现与多个PLC同时通信。
    (7)断开连接后自动重新连接PLC。
    (8)程序从CODESYS下载到PLC后自动重启。
    (9)将信号事件(数据更改,状态更改)发送给客户端。
   (10)获取、设置PLC应用程序的状态。
   (11)访问PLC底层文件系统。

     PLCHandler作为一个软件开发工具包(SDK),包含所有C ++头文件,PLCHandler库,示例配置文件和演示源代码等。典型的PLCHandler库作为静态链接库(例如WIN32系统下:PLCHandlerLink.lib或者PLCHandlerLinkMFC.lib),封装了C++类以及附加的C的接口。对于WINDOWS平台,PLCHandler也提供动态链接库(PLCHandlerDll.lib)和ActiveX-Control(PLCHandlerX.ocx)插件。
      下图说明了PLCHandler和API接口的内部结构:


      为了使PLCHandler能够在不同的操作系统上工作,需要使用CODESYS Runtime System 中的系统组件。这些组件代表了硬件和操作系统抽象层,并且隐藏了PLCHandler的所有其他组件的处理器和操作系统具体的特性。每个系统组件都有其特定的功能,例如文件访问,访问堆内存,访问RS232串行接口,访问操作系统任务等。

   CODESYS OPC UA Server
       OPC UA是实现智能化工厂和工业4.0的标准接口。OPC UA(统一架构)是OPC标准下的新一代技术,它不仅允许机器和工厂间进行数据的传输,也支持以机器可读取的方式进行对这些数据的描述。OPC UA是基于TCP标准的独立的平台。协议栈可以用于OPC组织的所有成员。
       基于CODESYS Runtime组件化架构,CODESYS OPC UA Server 可作为附加组件移植到CODESYS Runtime里。因此,CODESYS OPC UA Server几乎可以集成到所有基于CODESYS 开发的设备中,并与TCP/IP和实时时钟的表现相当。为了可以在CODESYS Runtime里部署OPC UA Server,设备制造商必须从OPC组织获得协议栈的源代码。
      OPC UA Server接收来自CODESYS上位开发环境的数据,并与OPC UA的Client端进行通讯。OPC UA 的功能及特点如下:
     (1)自动建立与客户端通信;
     (2)当数据值和数据状态发生变化时自动触发;
     (3)浏览变量列表
     (4)管理数据缓存项
     (5)直接访问控制器中的项目(无缓存)
     (6)可以与CODESYS V2.3版本进行OPC通信。

   CODESYS Redundancy
       基于IEC61131-3标准的上位开发环境下的冗余功能的扩展,支持用户开发一款属于自己的冗余控制器。两个独立的工业控制器在不间断和同步的情况下,同时执行一个IEC61131-3应用程序。一旦出现意外状况,冗余控制器自动切换为主控制器,且控制不会因此而中断或者暂停。但仅有主动控制器与I/O系统进行通讯。
       冗余功能:
     (1)两个控制器同时启动机制;
     (2)配置IP地址和控制器超时;
     (3)自动同步和更新冗余控制器,即使一个控制器被另外一个控制器所取代;
     (4)对IEC61131-3应用程序中的错误做出反应;
     (5)通过IEC应用程序函数调用或者OEM运行系统组件(例如当监视温度的进程、现场总线错误诊断或通过可视化手动切换)来在控制器之间进行切换。



上面是CoDeSys的一些简介,基本上说的比较清楚了。
如果有坛友做过基于CoDeSys runtime 的底层开发工作,能够说一下就好了。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2018-9-27 17:19:52 | 显示全部楼层
再增加一些CoDeSys的信息




CODESYS介绍,功能和实现
前言
行业内流传,CoDeSys和西门子step7,在德国都属于标准课程,牛逼的小朋友都可以用其编程,不知真假,相信无风不起浪,多少有些依据,看看国内清一色的日系编程,我们是否需要换换脑子,换换思考方式了?
CoDeSys类的编程能否达到这个目的?本文会从CODESYS是什么,能实现什么功能,如何来实现几个方面介绍。
CODESYS主要面向技术人员,如销售人员能理解该文一些概念,也许真能成为“忽悠大神仙”,多卖产品,多赚银子!

正文
1.CODESYSY是什么?
CoDeSys是全球最著名的软PLC内核软件研发厂家德国的3S(SMART,SOFTWARE,SOLUTIONS)公司的一款与制造商无关的IEC 61131-1编程软件。
CoDeSys 支持完整版本的IEC61131标准的编程环境,支持标准IL、ST、 FBD 、LD、 CFC、 SFC六种编程语言。
是一个标准的软件平台,被很多硬件厂家支持,可编程超过150家OEM生产的自动装置。
CoDeSys是可编程逻辑控制PLC的完整开发环境,是Controlled Developement System的缩写,
最新的版本是CoDeSys V3(目前最新版本为V3.5)。

2.CODESYSY能实现什么功能?
CoDeSys提供了许多组合产品的扩充,诸如各种不同领域的总线配置程序、完全的目测化和运动控制系统。

(一)总线通讯能力:多样总线协议支持
§ OPC通讯
§ Modbus通讯
§ Profinet通讯
§ EtherCAT通讯
§ EtherNet/IP通讯
§ 自由串口通讯
§ ODBC功能,数据库通讯

(二)本地显示能力
§ visualization简单易操作
§ 多样控件,模板资源

(三)运动控制整合能力:(透过SoftMotion)
§ 点位运动
§ JOG运动
§ PT运动
§ 电子齿轮运动
§ 电子凸轮运动
§ HOME运动
§ 电子探针功能
§ 间隙补偿功能
§ 插补运动
§ CNC运动

3.CODESYSY能如何实现以上功能?
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\"。
4)CoDeSys工作原理图(略)

4.CODESYSY已经和哪些厂商合作,竞争对手?

1) 国外厂商:
倍福,TWINCAT2.10等
ABB,AC500等
Wago,可编程总线控制器
图尔克,可编程总线网关
国外还有IFM,EPEC,Rexroth,Parker,Festo,施耐德等。

2) 国内厂商:
和利时,DCS CONMAKER3.13,PLC LK系列PROWERPRO4.0,
安控, RTU 和专用PLC控制器
步科,(深圳步科F1 PLC)

3) CODESYSY的竞争对手?
CoDeSys竞争对手有KW、infoteam、ISAGRAF。infoteam(一方梯队)也是挺牛的。
其中KW公司,同属于德国企业,主要是产品为multiprog。
KW主要客户有菲尼克斯的AutomationWorx、富士电机的D300Win、 研华Multiprog,苞米勒的PLC和伺服系列,三菱也是它的大客户。
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-7-20 12:12

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表