tag 标签: SoftPLC

相关博文
  • 热度 5
    2022-4-27 14:03
    1279 次阅读|
    0 个评论
    本系列文章旨在帮助读者 对虹科 KPA Automation体系进行一个简要的理解,并且能使用 MoDK 进行快速的上手操作 , 包括: 虹科 K PA A utomation、 虹科 K PA M oDK 简介, 虹科 K PA MoDK 的运行环境搭建与例程测试。本文档搭建 的 虹科 K PA M oDK 运行环境,是基于Win10,并且是以C /C++ 为开发语言进行的。 虹科 KPA A utomation是一个自动化解决方案开发平台,适用于工厂自动化和过程控制应用。 经过前文的相关介绍和运行环境的搭建, 本部分进行部分官方例程的测试,以下例程分别对应了 MoDK 可以控制的 3 类对象: Ether CAT 从站(结合 M DK )、 Vrep 机器人仿真平台、 Simulation (纯文字仿真)。最后一个例程通过 Motion Configuration Utility 中的设置,实现了对实际电机以及 Vrep 中仿真机器人的同时控制。 一、 M ove _ relative ( E therCAT & C iA 402) 该例程的测试效果是控制一个物理电机轴进行 3 次相关运动,需要我们外接一个 Ether CAT 从站伺服和电机进行现象观察,笔者的测试环境中,选择的是 maxsine 的伺服。 例程测试的步骤如下: ①在 虹科 KPA Studio 中进行网络组态 1 、打开 虹科 KPA Studio ,进入主界面后,进行 maxsine 伺服 ESI 文件的导入 使用 3.2.2 节提到的操作方法,导入 maxsine 伺服的 E SI 文件,如下图所示: 2 、开启本地的 虹科 KPA Master ,并在 Studio 中进行连接 虹科 KPA MRT 安装完毕后,在桌面可以找到 Master 启动快捷方式,可用作本地 E therCAT Master 与 Studio 进行连接。 开启后,可以在桌面右下角任务栏里看到 Master 的小图标,意味着 Master 已经打开。 3 、进行网络组态,并尝试 Master 和从站伺服的 O P 回到 E therCAT Studio ,点击界面中间“ Connection settings for Master server ”下“ H ost name ”或“ P ort number ”的可编辑区域,鼠标双击或点击回车键。若弹出了“ Trying to connect ”窗口后没有其他消息,并且可以从“ N etwork card ”下拉列表中看到并选取本地主机所拥有的网卡,则代表 Studio 连接本地 Master 已经成功。 将 maxsine 伺服拖动至 Master 的位置,即实现了从站的挂载,也完成了网络组态。并在“ Network card ”选项中,选择将作为 Ether CAT 主站控制伺服电机的网卡。 或者您也可以选择好网卡后,使用网络扫描功能扫描整个网络的组态: 接下来进行 O P 测试。将物理接线连接好以后,依次点击 Studio 上方工具栏的“ attach ”按钮, Master 的“ state ”选项卡,“ Operational ”按钮,进行主站的 O P 测试。 正常情况下,可以看到主站和伺服的状态机均切换成了 O P 状态,代表本地 Master 运行没有问题: ②在 Motion Configuration Utility 中将轴与伺服电机进行对接,并导出配置文件 接下来进行轴的配置,并导出网络组态与轴配置文件,首先在 Studio 中打开插件“ Motion Configuration Utility ”。 接下来如下操作,进行电机轴与伺服的绑定: 为了使现象更加明显,我们可以将参数页面下的位置、速度的标称值改大一点: Motion Configuration Utility 提供相当丰富的参数设置,此文档下的初步测试就不作进一步的展开了。请您关注我们后续发布的文档。 接下来进行文件的导出,如下操作: 选择导出路径,点击 O K 按钮后,即可在相应文件夹下面观察到导出的网络组态文件和轴配置文件: 将这两个文件拷贝至工程文件夹下面即可。 ④修改程序源代码的部分参数。 例程通过读取网络配置文件和轴配置文件进行 MoDK 运行环境的初始化,其读取的文件名是通过宏进行设定的,要么我们进行文件名的修改去适应宏,或者是修改宏来适应文件名,或是修改代码中文件读取 A PI 的文件名参数。由于 Motion Configuration Utility 的文件导出功能并不支持导出文件名的修改,而修改源码又略显麻烦,因此笔者推荐修改宏来适应文件名的方法。 如下图所示,在 move _ relative . c 中进行文件名宏的重定义,以适配导出的文件名: 另外,我们还需要修改 ecatm 虹科 KPA 15_helper.c 中的选用网卡编号,使得本地 Master 能够通过正确的网卡进行从站伺服的控制。首先先按下“ ctrl +F5 ”,运行一遍程序观察情况: 可以观察到由于没有选择正确的网卡,本地 Master 停留在了初始化阶段。上文中,笔者在 Studio 中设置的网卡为 U SB2.0 to F ast E thernet A dapter ,在控制台界面中也可以看到其编号为 2 。由此我们需要在 ecatm 虹科 KPA 15_helper.c 更改所用的网卡编号: 至此所有配置都已完成。 ⑤观察控制现象。 点击“ ctrl+F5 ”,即可运行程序观察现象,可观察到电机被控制而运转起来: 二、 M ove _path ( Vrep ) 这个例程不仅体现了 虹科 KPA M oDK 的另一种被控对象( Vrep ),并且也体现了另一种轴实例的初始化方式——源代码配置,即通过直接在程序中添加源码以到达修改轴配置参数的目的。相比上一个例程中的“界面配置 + 源码导入”的环境初始化方式,这种配置方式无疑会更加繁琐,而且会增加源代码的代码量。但是在此部分代码完成后,再次修改轴配置参数的步骤就十分简单了,直接在代码中修改相应参数即可,而另一种环境初始化方式则仍需要重新配置生成 ini 文件,各有千秋。 源代码配置轴初始化参数的方式更适合需要频繁变更初始化环境的情况。 例程测试的步骤如下: ①在 V REP 中打开官方提供的三轴线性机器人模型 M oDK 提供了一个 V rep 三轴线性机器人模型,在开发包的 samples 文件夹下,安装 V rep 后,双击即可在 V rep 中打开模型 : ②在代码中修改 V REP 的端口参数 M oDK 提供的 V rep 模型使用 3.04.00 版本的 V rep 开发,版本较老,而目前在官网上下载的 Vrep 版本已经到达了 3.5.0 。不过这并不需要用户进行太多的适配操作,新版本的 vrep 会向下兼容旧版本 vrep 的模型,不过 vrep 对外通信接口的端口号发生了变化,由 19998 变成了 19997 。 而例程中的端口号设置仍然是 19998 ,所以需要手动更改成 19997 ,该代码位于程序 71 行处: // 以下几步在此例程中并不需要进行 1 、在 Motion Configuration Utility 中将轴与 V REP 机器人模型进行对接 2 、导出轴配置文件( ini 格式) 3 、使用 MoDK API 中的 ini 文件读取函数进行参数读取和初始化 // ③观察控制现象 修改完成后,即可进行例程测试,点击 ctrl +F5 ,切换至 V REP 窗口,即可观察到机器人末端按照预定的轨迹点进行运动: 您也可以使用自己的算法生成所需要的轨迹在此 demo 中进行测试,如笔者的简易字符绘图: 三、 Simulation_move_absolute (Simulation) ①观察控制现象 此例程为纯文字仿真,不需要进行额外的操作。 MoDK 在 虹科 KPA 运行环境内创建了虚拟轴句柄, simulation 即对这些虚拟轴句柄进行虚拟化运动,反映在读取的各轴位置、速度值发生变化。 切换启动项目,按下 ctrl+ F5 ,即可开始仿真。 可以从控制台界面获取到轴的位置、速度等数据。 四、 M ove _ complex _drawing ( E therCAT & C iA 402 + Vrep ) 对于可控制的三种被控对象, MoDK 可以同时控制其中任意两种,此部分选取 Ether C AT 伺服电机 + V rep 机器人模型这两种比较直观的被控对象进行测试。测试控制的对象是三个 maxsine 的 E ther CAT 伺服电机,加上 Vrep 中的三轴线性机器人模型。 例程测试的步骤如下: ①在 虹科 KPA Studio 中进行网络组态 此部分操作与 4 .1 节的操作基本相同。 打开 虹科 KPA Master 后,打开 虹科 KPA Studio ,在 Studio 内连接上 Master 后,进行网络组态的扫描: ②打开 V rep 中的三轴线性机器人模型 留意此处线性机器人模型的名称,后续会使用到。并且注意到,机器人的 axis1 使用 y 轴坐标表示, axis2 使用 x 轴坐标表示。而代码的逻辑是按照 x 、 y 的顺序进行扫描的。因此在初始化配置的时候需要留意轴的编号指定,即将编号 1 ( x 轴)指定到 axis2 ,编号 2 ( y 轴)指定到 axis1 。 ②在 Motion Configuration Utility 中将轴与伺服电机进行对接 打开 M otion Configuration Utility ,进行如下操作,可以为一个电机轴绑定伺服: 注意需要在“ Secondary profile ”中选择 Vrep ,达到同时控制 E ther CAT 从站和 V rep 机器人模型的效果。 ③修改 V -REP 参数 接下来在此处进行 Vrep 参数的配置,在 V -REP 选项卡中将参数修改成如下图所示: P ort 端口即 Vrep 的通信端口,上文提到新版本的通信端口为 19997 ,因此此处需要修改。 J oint number 即机器人模型的轴编号,我们为第一个电机轴编号为 2 。 U se model feedback 即使用反馈,机器人模型的数据可以反馈至 虹科 KPA motion 的运行环境中来。 M odel ID 即 Vrep 中的机器人模型名,注意大小写需一一对应。 S caling factor 即标称值,代表机器人模型的尺寸与 虹科 KPA motion 运行环境中轴的比例系数。举例来讲, 同样的 MoDK 控制代码(如轴 1 向前移动 50 个单位),这个比例系数越大,则机器人模型运动的距离就越大。我们此处设置为 0 ,具体原因将在后文解释。 可能您注意到了,电机轴的命名为 Axis _X ( X =0,1,2… ),而 Vrep 中机器人模型的轴命名为 axis X ( X=1, 2,3… ),这两者是否需要一一对应? 答案是不需要, M otion Configuration Utility 中对于轴的命名是供 虹科 KPA motion 运行环境内部所使用的,并不需要与外界的对象进行对应。但 M odel ID 、 J oint number 是 虹科 KPA motion 运行环境索引 Vrep 中机器人模型的轴的必要条件,因此需要与机器人模型一一对应。 ④修改通用参数,克隆电机轴 打开 parameter 页面,将红框处修改成如下图的数值,使得 EtherCAT 伺服电机的运转现象明显一点。需注意,此处的 Scaling factor 数值,同样会影响到 Vrep 中机器人模型的运转,并且由于实际伺服电机的编码器数值一般来说都是以万为基本单位的。因此会陷入到这样一种怪圈:此处 Scaling factor 数值设置得大一点, Vrep 中机器人模型的运动幅度超过了能看到现象的限定值;设置得小一点, EtherCAT 伺服电机的运转现象又不明显。因此需要将 V -REP 页面下的 Scaling factor 置 0 ,虽然逻辑上看上去有硬伤(除以零),但是这样子做实际测试出来反而是最合适的。 此处为止我们已经完成了第一个电机轴的参数配置,接下来我们克隆电机轴,然后只需要为克隆出来的电机轴绑定伺服、设定 Vrep 机器人模型的轴编号、修改 V rep 端口号即可。 注意 A xis _1 的 Joint number 为 1 , Axis _ 2 的 Joint number 为 3 。 ⑤导出文件,修改源代码部分参数。 此部分操作同 4 .1 节,点击“导出按钮”导出文件至工程文件夹: 修改源代码的文件名宏,网卡编号宏: 运行过程中可能还会提示“ axes _group_ref 使用未初始化的内存”的错误,所以我们还需要在代码的 271 行处对其进行初始化操作,置 0 即可。 至此所有配置步骤已进行完毕。 ⑥观察控制现象。 按下“ ctrl+ F5 ”,即可看到控制现象: V rep 中机器人模型进行圆周运动, EtherCAT 伺服也在带动电机进行运动: 4 .5 小结 观察 MoDK 的例程代码,可以发现其程序编写遵循一个比较规整的三步走模式:声明变量→创建实例→函数调用, 轴控制 循环则采用状态机的方式实现。但或多或少这种 PLC 的编程方式在计算机语言编程上有点水土不服,虽然用起来的思路比较明确,但是代码量看起来会相当庞大,可维护性相对较差。如上一节的最后一个测试例程,其中近 400 行代码都用作初始化配置,主循环逻辑其实才 100 行出头。若是想要进行轴运动的扩展,又必须在初始化代码里面进行变量声明与创建实例,再于主循环中进行函数调用,代码量将极其庞大。 因而 MoDK 最好的使用方式,仍是结合 Straton 使用 PLC 语言进行开发。 Straton 拥有独立的变量编辑器,并且 P LC 功能 块创建 与调用本身就是一体化的,可以极大减少开发的工作量,程序的维护也变得直观与简单起来。
  • 热度 4
    2022-4-21 11:28
    1264 次阅读|
    0 个评论
    本系列文章旨在帮助读者对虹科KPA Automation体系进行一个简要的理解,并且能使用MoDK进行快速的上手操作,包括:虹科KPA Automation、虹科KPA MoDK简介,虹科KPA MoDK的运行环境搭建与例程测试。本文档搭建的虹科KPA MoDK运行环境,是基于Win10,并且是以C/C++为开发语言进行的。若您有任何疑问,欢迎您评论、私信或联系sales@hkaco.com,虹科工程师将给您专业的解答。 程序准备: ①虹科KPA EtherCAT Studio ②虹科KPA MDK ③高于2.8版本的CMAKE ④Visual Studio、V-REP机器人仿真平台 ⑤虹科KPA MoDK 一、虹科KPA EtherCAT Studio简介 虹科KPA EtherCAT Studio是一站式的开发软件,可以连接至本地或远程的虹科KPA Master,进行整个EtherCAT网络的组态扫描,状态机切换,过程数据地址表确认等等操作,实现EtherCAT网络的组态、监视、诊断等功能。 结合MoDK使用时,我们需要虹科KPA EtherCAT Studio进行整个ECAT网络的组态,以及电机轴的各项参数设置,如绑定驱动器(伺服),驱动模式,电机最大速度、加速度、加加速度等等。 部分操作界面如下图所示,“MoDK例程测试”一章会详细阐述操作的步骤。 二、安装虹科KPA EtherCAT Studio 请注意,MoDK所需要的Motion Configuration Utility插件,只有在虹科KPA EtherCAT Studio 2中才有,所以我们安装的Studio版本,也必须是2.x版本的。步骤流程如下: 1. 获取studio安装包 如果您在虹科的合作伙伴KPA的官网上自行获取Studio安装包,那么流程将相对复杂,大致流程如下:注册KPA账户→填写缘由申请Trial版本的Studio(或者其他的试用产品)→等待KPA批复→KPA确认后在您的帐户中提供下载链接。 由于流程复杂且KPA批复时间不定,我们建议您联系虹科工程师给您分享Studio安装包。 2. 安装Studio 获取安装包后,您会得到一个msi安装文件,点击即进入安装流程。 请注意安装时候的两个路径,其中一个是Studio程序本体的安装路径,另外一个时Studio所需要调用的一些周边数据的路径,包括插件(如MoDK所需要的Motion Configuration Utility)、ECAT从站库等等。您可以自行修改安装目录。 接下来一路点击next完成安装即可。 Tips:Studio打开时需要扫描从站库文件夹加载ECAT从站库,这个过程耗时较长,且其中多数从站都不会用到,导致用户体验不佳,您可以参照以下步骤,快速加载Studio。 1)打开从站库文件夹 2)备份后删除 此时回到Studio,右键从站库空白处,点击“Reload collection”,可观察从站库已清空。 此时重新打开Studio,可以看到Studio的启动加载时间极大缩短了。 3)仅将所需设备的xml放入从站库文件夹,重新加载从站库 此时开启Studio后,只需要将将所需设备的xml放入从站库文件夹,重新加载从站库即可。 3. 为Studio绑定License 请注意,Studio可以运行在无需License的demo模式下,其性能会有所限制,仅允许从站有15个字节的PDO数据,多于15字节则PDO数据无法下发,并且运行其单次运行时间会有限制。MDK/MoDK运行环境的单次运行时间最多为1小时,1小时后运行环境将自动关闭。如需协助,欢迎联系虹科工程师。 三、安装虹科KPA Modk 虹科KPA MDK(Master Development kit)包括虹科KPA MRT(Master Runtime)和虹科KPA MIP(Master Integration),前者是虹科KPA Master的运行环境,后者是虹科KPA Master的头文件、库文件以及例程源代码。两者均以安装包的形式提供,请注意MoDK目前仅支持虹科KPA MDK 1.6及以下版本,虹科KPA MDK 2.0以上暂不支持。 ①虹科KPA MRT安装过程 虹科KPA MRT的安装过程中包括WinPcap 4.1.3的安装,可能会出现WinPcap不支持当前系统(WIN10)的问题。但点击确定后仍可以完成安装。 一路点击next完成安装即可。安装完成后会提示重启计算机,您可以在安装完其余组件后再一次性重启。 ②虹科 KPA MIP 的安装过程 此处须记住Installation location的安装路径,在下一节CMAKE编译中,我们需要指定的MDK引用路径,就在其中。 一路点击next完成安装即可。安装完成后会提示重启计算机,您可以在安装完其余组件后再一次性重启。 四、VS 2019、V-REP机器人仿真平台安装 严格上来说Visual Studio的版本并没有严格规定,只要不是太过时都可以使用,笔者使用的是VS 2019 community进行开发。Visual Studio的资源及安装流程在网上比较常见,请您自行查找,或者也可以找我们索要安装包。由于cmake编译生成MoDK需要使用现成的编译器,请务必在cmake编译生成MoDK工程前完成VS(或其它IDE)的安装。 V-REP机器人仿真平台是一个开源的机器人仿真平台,使用EDU(教育版)可以免费使用其所有功能。 五、CMAKE编译MoDK例程 上文提到,MoDK可根据不同的OSAL库文件运行于不同的操作系统下,为了实现这种平台无关性,MoDK本身仅以源代码和库的形式提供,包括C文件、头文件、库文件以及CMAKE list文件,不包括任何平台相关的项目文件,需要您自己手动使用CMAKE进行源代码编译。如果您需要帮助,欢迎联系虹科工程师。
  • 热度 14
    2022-3-11 13:09
    1508 次阅读|
    0 个评论
    案例背景 OMET集团是全球领先的包装印刷机械和纸巾加工机械生产企业,包括5家制造公司和制造工厂。自2010年以来OEMT的营业额稳步增长10%,并且自1963年成立以来,OEMT已经在全球成功实现了1900多个项目。 柔版印刷是市场上最通用的印刷技术之一 ,它能够在使用基础材料时进行高质量的印刷并具有极高的灵活性,还能够与其他技术混合使用。柔版印刷特别适合用于满足高覆盖率、特殊、金属色、文本和清漆的印刷需求,并提供广泛的色域和精确的细节。OMET柔印机采用套筒或滚筒技术,在标准或垂直配置下使用UV或UV LED、EB、水基或溶剂型油墨进行印刷。 难题与挑战 在用于标签印刷的柔印机领域,OMET需要一个新的自动化解决方案来取代现有的基于模块化的PLC和操作面板。 该方案在技术上应该达到尖端产品的水平,并在价格上具备竞争力。此外,这一方案应该是紧凑的,因为需要减少整体尺寸并保持电气面板尺寸。 虹科解决方案 经过调研,OMET选择了采用虹科的可编程逻辑自动化控制器(PAC)来作为模块化PLC和操作面板的替代方案。这个方案可以提供紧凑的PAC系统,能够将基于softPLC的控制逻辑、人机界面和所有其他服务功能整合在一个设备中。此外,虹科的这个集成控制解决方案包括了带有Windows CE操作系统的ARM平台和带有Windows操作系统及其实时扩展的高端X86系统。 性能的可扩展性伴随着绝对的可移植性,无论是HMI还是SoftPLC,所开发的软件都可以在广泛的产品中重复使用。对于柔印机的应用,OMET选择了一个安装在控制台的虹科ASEM LP2200系统,如下图所示: LP2200系统和所有的虹科PAC一样集成了捆绑的CODESYS softPLC,并与IEC 61131-3编程标准兼容。OMET技术人员可以结合以往的知识来快速有效地实现机器控制逻辑,从而能够充分利用平台的不同资源。过程逻辑序列使用SFC语言进行编码,该语言对于状态机的描述非常强大,梯形图被用于事件和简单逻辑的管理,而结构化文本则允许以最佳方式描述机器最复杂的计算和管理部分。 控制程序的结构包括使用三种类型的现场总线主站。基于伺服电机的材料运输系统的管理由一个单独的控制器进行,该控制器通过CODESYS项目管理的Modbus TCP总线作为第一主站与控制系统连接。通过这种连接,正确操作所需的各种参数被提供给驱动器。 此外,由于采用了Modbus TCP总线,它可以与安装在机器上的视觉系统进行通信。对于iFlex 机器和iVision系统,由于每个柔印机都有一个同系列的智能摄像机对高速运行的印刷材料图像进行检测,从而使得操作员能够手动调整滚筒来确保印刷品上的颜色无误。 相较于XFlex X4和XFlex X5印刷机,Vision-1 自动系统从根本上减少了设置时间和开机时间,保证了生产效率和使用不同材料时的质量效果,这要归功于一个自动套准控制系统,该系统使用带有集成驱动器的伺服电机来控制印刷套准,由CODESYS项目通过CANopen总线和专门创建的运动库驱动。 因此,对于每一个印刷组,它可以根据来自机器底部的摄像头的输入,自动调整套准器的横向和纵向的前进,使其与材料流的方向完全一致,六个套准器中的每一个都使用两个电机,整个机器总共有12个电机和相关驱动器。 设备的输入和输出由EtherCAT总线系统进行管理。由于在CODESYS中实现了EtherCAT-ASi网关,程序能够管理机器上大约100个I/O点的通讯,如机器上的ASi按钮。 此外,在操作系统方面,虹科LP2200系列PAC基于Windows Embedded Standard 7操作系统,采用了Intel Celeron J1900四核2.0GHz处理器和4GB内存,并集成了UPS和512kB MRAM内存,可用于保存保留变量。因此,对于工业控制应用来说,虹科LP2200是一个性能良好且价格合理的面板PAC应用的理想解决方案。
相关资源