自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 面向对象程序设计-使用指南V1.0

第3版的IEC61131-3标准使面向对象编程(OOP)成为可能。与此同时,PLCopen也定义了相应的功能块库的概念,包括OOP和PLCopen通用行为模型(请参阅PLCopen网站2017年5月4日发布的“创建PLCopen兼容库V1_0”),以及运动控制、安全和通信功能块集。从一开始OOP就需要做出几个选择:是否所有功能块都在一个类中?以PLCopen运动控制功能块为例,我们是否需要AxisRef作为轴的引用,甚至MC_作为FB名称的一部分?它们如何包含方法?我们是只使用方法,还是也直接访问变量?

2024-09-11 13:09:06 1186

原创 将“运动控制功能块”移植到OOP中示例

今天继续推进《将“运动控制功能块”移植到OOP中》的学习,反复学习了6,7,8三个示例。三个示例本身很简单,通过状态机实现轴多轴的时序配合,通过itfAxis和itfCommand接口实现功能调用。但是在状态机中,对于运动控制相关的Method并没有循环调用,只在状态转移时调用一次,这是如何实现真正的运动控制过程控制的还很迷糊。为了一探究竟,我突然萌生了一共奇特的想法:我计划在接下来的几天把经典的Codesys的PLCopen库重新在西门子的1500上实现,且采用AX的面向对象的设计思想。

2024-09-09 17:45:20 868

原创 将“运动控制功能块”移植到OOP中

随着 “运动控制功能块(原第1部分和第2部分)”规范的发布,PLCopen运动控制工作组提供了一套标准化功能块,以简化运动控制软件的模块化和重复使用。本文件介绍了运动控制规范的面向对象实现,可与程序标准功能块(FB)集相结合。建议的面向对象(OO)实现的总体设计是用一个轴的类将不同功能作为方法来实现,而不是以前使用的多个FB。该软件设计的一个优点是与程序化运动控制FB兼容:标准运动控制库可以在内部调用轴类,将两种方法结合到一个应用程序中。因此,通过OO实现的用户无需熟悉详细的OO原理或语言元素即可使用。

2024-09-07 00:09:55 998

原创 离开TIA博图的日子---第15天

对于基于TIA建立的工艺对象数据块和AX中的PosAxis类及TO_PositionAxis之间的关系基本理解。对于TO_Position的AX中是一个抽象类,但是通过大量的TO_Struct类型,定义的Axis相关的成员变量,或者说是轴的相关属性,包括基础配置:如轴类型,计量单位,是否是虚拟轴等,也包括与硬件相关的接口如TO_Struct_Actor等。通过PosAxis的Attach完成了TIA的工艺DB和AX中轴对象的引用。在研究了这些的基础上,本应该继续完善演艺设备相关类的定义及数据结构建立的。

2023-12-16 23:17:38 559 2

原创 离开TIA博图的日子---第13天

如下图所示,在昨日的基础上,已经通过Interfaces完成了演艺设备行为定义,今日本该正式进入设备Class的设计。考虑到Dev类必须Attach具体的工艺对象,故在类的设计前必须深入理解我们的演艺设备工艺对象TO。常言说,他山之石可以攻玉,我相信在自动化领域西门子这座山还是大山。故在设计演艺设备工艺对象前,我决心好好学习AX的关于关于MotionControl的TO设计。

2023-12-15 00:51:26 778

原创 离开TIA博图的日子---第12天

在系统中所有的被控对象都抽象为设备,包括我们常见的吊杆,升降台,也包括来自音频的TIMECODE或者来自灯光的DMX512信号,在系统中都是演艺设备EntertainmentDev。在曾经的设计中,苦于TIA不支持OOP,故设备的描述并不能层层抽象继承完成,故我们常常建立一个很大的结构数据,把所有设备的属性都包含其中,只是对于不适用于该设备的属性不使用,这导致数据结构相当的臃肿。此刻,休息的闹钟已第二次敲响,为了不重蹈上周低产出的覆辙,此刻我还是从长计议,选择关机睡觉,明天继续......

2023-12-14 00:36:50 352 1

原创 离开TIA博图的日子---第11天

按照例程,编译项目,load程序进PLC,建立Mon文件,把需要监控的变量Add到Mon文件中,这个和博图添加监控表一样。今日为了更深入的理解程序Debug的方法,我硬是把官方文档最开始的入门指南又照着例程走了一遍,基本算是理解了调试工具一二。这基本算是黑盒测试,只有输入激励,观察输出结果,这当然不是现代程序测试的方法。在终端中正确地打印了变量的当前值,我想这应该是工具配置问题,至少工具本身已经成功运行。通过网络调试助手,建立Tcp连接,发送数据包,收到回复(但不正确,明天继续)。

2023-12-13 00:23:58 292

原创 离开TIA博图的日子---第10天

今天开始测试OperationDesk类,虽然我通过直接把程序下载到真实的PLC,通过Mon完成了基本功能的测试,但是对于AxUint还是没有真正的理解,对于什么是Mock,如何使用还需要再下功夫。昨天,前天,我选择战术性休息,连电脑都不愿意打开,完全让自己进入职业休息的状态:睡觉,喝酒,看娃娃书, 今天算是满血复活了。

2023-12-11 17:35:26 330

原创 离开TIA博图的日子---第7天

今天盯着屏幕坐了一天,但是似乎项目开发进度毫无进展,更糟糕的是还没有方向。或许这是我这种大龄程序员的现状,体力和脑子都已经有些跟不上需求了,或许我需要休息一下了。本着求真求实的态度,我如实记录!

2023-12-08 22:19:53 336

原创 离开TIA博图的日子---第6天

Abstract类到Base类,再到具体实现类这样的设计在C++的语言中是可行的,也是方便的,但是在ST中,引用和强制类型转换并不像C++那样自由,几个操作台的引用赋值调用已经让我调试感到紧张。在这种知识惯性的框架下,考虑到未来各种操作台的扩展问题,即多态特性,在设计OD模块的时建立了AbstractOD的抽象类,用于应用层通过REF引用的调用。当需要在工作组中去使用阀门的方法,可以在工作组的某个方法里,用接口变量的方式,关联不同的具体实现的阀门类。在理解INTERFACE的过程中。

2023-12-08 01:57:17 365

原创 离开TIA博图的日子---第5天

时间的相对论在物理课上总很很难理解,但在codeing的时候却是如此的明了,或许正如大家熟悉的愉快的相处总是短暂的。在效率工具的加持下,今天终于完成了控制器与操作台的通信协议实现。在前几日终不得法的纠结下,看了一遍又一遍AX OpenUser开放通信层的学习下终于唔出了类在ST中的应用实践。针对昨日我提到的关于块调用参数不方便直接插入的困惑,在西门子AX团队的支持下,我顺利地安装好library toolbox插件。这是一个效率工具,直接解决了块调用的直接拖入,也解决了库全貌的快速浏览。

2023-12-07 07:30:22 353

原创 离开TIA博图的日子---第4天

比如在开放式通信中,AX提供了OUC和OpenUser两个Lib,OpenUser是基于类开发的,OUC是基于功能块开发的。我在选择库的时候理所当然的喜欢基于类的开发,然后在过程中才发现OpenUser还不完善,缺少很多必要的文档说明,功能也不完整,这导致又更换库重新开发。看着我5天的工作成就,我承认此刻我的内心还是比较惶恐的,毕竟实际工程项目的DeadLine是确定且紧张的。实践证明今天的这样调整是正确的,虽然今天的进展速度没有我理想那么好,但是至少往前推进了。其次,在库的调用中没有博图那么方便。

2023-12-06 00:49:45 460

原创 离开TIA博图的日子---第3天

我一遍又一遍地看着官网的ST语言参考,看着类,方法,重载,FB,FC。经过前两日对AX的了解,已经基本可以完成最简单的编译下载,今天开始着手用于正式的项目程序开发,毕竟我们用一个新的平台的目的还是产品开发,就像我们谈恋爱的目的还是结婚生子,一切不以结婚为目的的恋爱就是耍流氓,一切不以项目产出为目标的平台测试也是耍流氓。我不断地安慰自己做程序就是这样的,就像原子的能级一样,在一个能级不断提高转圈久了自然就会跃迁到下一能级,这需要一个不断做功的过程。夜晚,行业聚会,宿醉,至此刻酒醒。嗟乎,今日终不得法!

2023-12-05 03:56:43 447

原创 离开TIA博图的日子---第2天

是的,这就是我们熟悉的各种功能的可执行文件,包括常用的开发功能如ST程序的编译,程序的下载,还包括查找设备,设置PN名称及参数,当然也包括相关的应用库。No.它是基于dotnet的,所以,在你想更深入地了解它时,它给你机会去反编译它,更深入的了解它的每一句代码。接下来,为了更深入的了解它,我需要知道每一个命令代码下去,它到底有什么变化。正如预期,这里是linx-x64,但是细心的你会发现,它有一个@ax-vscode,为了一探究竟,继续深入@ax-vscod,是的,如你所料,这是VSCODE的插件。

2023-12-03 23:51:58 856

原创 离开TIA博图的日子---第1天

文档说需要编写“IMATIC AX Hardware Declaration Language”,看着这还得用硬件描述语言,我心里琢磨着,这AX还挺矜持的嘛,我这想直接进入主题还挺难的嘛。下载安装包118M,简单的下一步,下一步,完成,Launch,基于VS Code的AX映入眼帘。是的,对于IT工程师而言,它说熟悉的,它是简约的,它看着也是美妙的。初识,它是美艳的,也是强大的。但是,它是开放的吗?人在兴奋的时候,思维就会特别活跃,很快,PLC运行诊断相关界面展示出来,看着它是那样的熟悉,又那么的美妙。

2023-12-02 17:31:37 1439 2

原创 离开TIA博图的日子---第0天

这虽然让项目代码管理麻烦,好在也还能接受,也方便在给项目领导展示项目的时候,体现一下工作量。从今天起,我记录离开TIA博图的每一步,看我如何彻底地摆脱它,让它看到我离开它的日子过得有多好!但是随着TIA的版本更新越来越快,当我才把V17用习惯的时候,V18出现了,当我终于由于部分硬件必须使用V18,我鼓足了很大的勇气安装好V18的时候,V19诞生了。看看几个需要维护的已经归档的项目,看看这巨大的安装包,看看我的电脑硬盘剩余空间,我常常要点支烟,看着屏幕发呆。还好LAD的程序都不大,还勉强能应付。

2023-12-01 17:57:06 672

面向对象程序设计-使用指南V1.0 示例程序

面向对象程序设计-使用指南V1.0 示例程序

2024-09-11

运动控制应用示例 - 将“运动控制功能块”移植到OOP中 V1.0

运动控制应用示例 - 将“运动控制功能块”移植到OOP中 V1.0

2024-09-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除