克服PLC编程的难题——基于Git的软件
图片来源:Copia Automation
作者:Darren Henry
一家控制系统集成商使用基于Git的软件提高了自动化程度,并提升了新员工的入职培训效率和质量。
Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发。Git最初是由Linux开发者Linus Torvalds创建的,它具有高效、灵活、稳定等优点,如今已成为软件开发领域中最流行的版本控制系统之一。Git使用一种名为“仓库”的数据结构来保存代码和它们的变更历史。每个开发人员都可以在本地拥有自己的仓库,并将其与其他人的仓库同步更新。除此之外,Git还提供了强大的分支和合并功能,可以让开发人员在不影响主干的情况下创建和测试新功能。
自1996年以来,工程咨询公司DMC一直致力于通过定制的自动化软件和控制系统,帮助客户提高生产设施的生产力。他们参与过很多行业应用,如汽车、食品和饮料,甚至海军战舰。
负责该公司美国西部自动化业务的项目总监John Sullivan表示,对服务的需求从未如此之高。“有时,我们不得不地拒绝合同,因为需求超过了我们快速雇佣和培训控制工程师的能力。”
控制系统集成商协会(CSIA)最近的一项调查显示,2021年系统集成工程师的招聘形势严峻,但整个领域的人员流动率却高达16.5%,这也印证了 Sullivan 的判断。
最大的瓶颈是培养新人才和有效地利用高级工程师的时间。软件工程专业的学生,学习的通常是基于文本的编程语言,而不是专用于机器自动化的可编程逻辑控制器(PLC)可视化梯形逻辑图。因此,年轻的工程师需要与经验丰富的导师配对进行培训,这可能需要几个月的时间。
在DMC公司,软件项目组的大小从一名程序员到25名工程师不等,夏季往往会需要更大的团队,新人可以向经验丰富的同事学习。高级工程师的日程很快就被频繁的设计审查填满。到了冬天,随着大学毕业生更有能力独立开展工作,小型的团队变得越来越普遍。
为了简化其设计审查过程、版本控制和协作,他们采用了基于Git的软件,该软件可以加速多个PLC编程环境的开发。这使团队能够在相同的文件上工作,而不会有覆盖他人工作的风险。Git分支和合并功能,为梯形图逻辑编程带来了与文本语言项目相同的协作优势。
带注释的可视化检查功能,提供了易于阅读、颜色编码的比较,审核人员无需在原始集成开发环境(IDE)中下载和打开文件。
通过在网络浏览器或桌面应用程序中显示PLC梯形图逻辑 并突出显示提交之间的变化 Copia可以加快代码审查速度
01 尽早发现并修复错误
PLC编程语言的自动渲染以及在不使用原始IDE的情况下快速可视化变更的能力,大大加快了初级和高级工程师之间的反馈路径。在领导多个项目时,由于代码审查速度更快,高级工程师每周最多可以节省一天的时间。此外,审查比以前更频繁。Sullivan说道,“在部署或测试之前,我们会发现更多的错误。因为我们总是在合并之前查看可视化代码,所以我们犯的错误也更少。”
转向基于Git的软件后,使Sullivan的团队效率大大提高。他说,“虽然在管理项目历史方面Git本身做得很好,但在审查代码时就显得力不从心了。每当有人提交代码变更时,我们的高级工程师都需要打开两份开发环境副本,在两个平台之间进行比较,并在重新提交之前手动复制代码。现在,我们可以立即看到变更,只需单击几个按钮即可合并这些变更。过去需要45分钟的过程,现在只需要15分钟。”
“成功的关键之一就是要确保拥有最新的代码。共享同一个资源库有助于实现这一点。”
02 克服自动化编程的难题
Copia Automation公司基于Git的版本历史记录,可以捕获项目生命周期中的所有编码变更,允许团队根据需要恢复到任何早期版本。编辑历史对于团队成员了解最新的项目变化非常重要,它也有助于管理困扰DMC公司多年的难题。对于很多企业来说,挑战在于:在安装后很长一段时间内,如何保持为机器和系统提供持续支持的能力。
Sullivan说:“我最近收到一位客户来信,该客户在七年前与我们最后一次合作。负责该项目的工程师和经理都去世了。始终能够找到老旧项目的文件非常重要。另外一个客户设施遇到电涌,导致其丢失了相关程序。不幸的是,他们从来没有保存过它的副本。因此,我们需要获取旧代码,并帮助它们重新部署到一组新的硬件上,以便它们能够恢复运行。现在,我们团队中的任何人,都能够在没有参与该项目的原始工程师参与的情况下,轻松应对这些难题。拥有项目整个生命周期的情境信息非常有价值。”
在一个安全的中央存储库中拥有唯一的信息来源,也有助于团队更有效地与制造客户合作。有些客户在运营设施时,工程师会定期进行小代码更改。当真出现问题时,他们会给出及时反馈。Sullivan说,“我们的工作是介入并帮助客户解决问题。成功的关键之一是确保我们拥有最新的代码。共享同一个存储库可以做到这一点。”
业界仍然依赖文件名和共享文件夹是一件 "令人尴尬 "的事情。开发一个精简平台,让程序员可以相互学习并开发单一的信息来源,这对于减少瓶颈和让年轻工程师在不麻烦高级工程师的情况下学习至关重要。基于Git的软件帮助他们大大提高了工作效率。
关键概念:
■ 如何培养新人并对其进行编程培训,是一个主要的挑战。
■ 了解基于Git的软件如何消除一些潜在的瓶颈。
■ 发现单一信息来源对编程的重要性,以及开放式沟通对团队的好处。
思考一下:
如何通过改变PLC编程工作流程来提高自动化水平?
欧姆龙PLC协议转MQTT安装于Linux系统BLIoTLink
欧姆龙PLC(Programmable Logic Controller)作为工业自动化领域中的重要设备,在生产线控制及数据采集方面发挥着关键作用。工业智能化需求逐渐增加,而Linux系统的稳定性和开放性也吸引了越来越多的关注。欧姆龙PLC与Linux系统的结合,为工业自动化带来了崭新的可能性,而BLIoTLink软件的问世更是为这一结合提供了强大的支持。可以安装在各种Linux发行版本,如:Ubuntu、centos、Debian等系统。实现欧姆龙PLC数据转换成MQTT、OPC UA、MQTT、Modbus TCP等数据采集、协议转换。
它充分利用了Linux系统的开放性和灵活性,为工程师们提供了一种全新的数据采集方式。BLIoTLink软件不仅可以实现对欧姆龙PLC的编程、监控和数据管理,还具备了丰富的通讯接口和协议支持,能够与各种工业设备和云平台实现高效互联。
BLIoTLink软件支持多种通讯接口和协议,包括以太网、Modbus TCP、Profinet等常见工业通讯标准,同时也兼容OPC UA等现代工业互联协议,使得欧姆龙PLC可以与其他厂商的设备进行无缝连接和数据交换。这一特性使得BLIoTLink软件成为了工业互联网时代的重要利器,为企业实现设备之间的互联互通提供了可靠的技术支持。
通过调用BLIoTLink软件上行、下行api数据接口,可以实现对PLC采集的数据进行实时监控、存储和分析。工程师可以通过软件界面直观地查看数据趋势、设置报警条件,并将数据上传至云端进行进一步的分析和应用。这为企业的生产过程优化和智能化决策提供了重要的技术支持。
其核心作用主要表现在设备集成、数据管理、灵活性和可扩展性等方面。通过开放南向和北向协议接口,以及支持API调用编程开发,多协议软网关为企业提供了定制和优化网关功能的可能性。
南向协议接口在工业互联网中起到连接底层硬件设备和传感器的作用。这意味着各种不同厂商和型号的设备可以与多协议软网关进行无缝集成,消除了兼容性问题。通过南向接口,管理人员能够轻松地添加、配置和监控各种设备,实现设备的有效管理和数据的准确采集。
北向协议接口主要用于与上层应用和云平台的通信。通过API进行调用编程开发,企业可以灵活地扩展和集成多协议软网关的功能。这为企业提供了更广泛的可能性,如数据分析与决策支持、远程监控和控制以及云集成等。开发者可以根据具体需求编写自定义的应用程序,实现更高效、更智能的生产方式。
多协议软网关的开放性和可扩展性还为企业应对不断变化的需求和新的挑战提供了支持。随着技术的不断进步和工业需求的日益多样化,多协议软网关能够适应这些变化,为企业提供更好的支持和解决方案。
多协议软网关在工业互联网中发挥着关键作用。通过开放南向和北向协议接口以及支持API调用编程开发,它简化了设备集成和数据管理,并为企业提供了灵活性和可扩展性。这有助于实现更高效、更智能的生产方式,推动产业的现代化和可持续发展。随着工业互联网的不断发展,多协议软网关将继续发挥其核心作用,为工业互联网的未来发展提供有力支持。
相关问答
plc电气工程师用什么电脑..._电气工程师_帮考网
PLC电气工程师可以使用任何品牌的电脑,包括Windows、Mac和Linux等操作系统。但是,建议选择配置较高的电脑,以确保能够运行PLC编程软件和其他相关工...
自动化专业适合从事嵌入式软件行业吗?
适合,适合,适合!重要的事情说三遍~嵌入式软件还是学自动化的人的一个主要方向,plc的发展很广阔。上学的时候自动化就是学各种控制,自动控制原理,顺序控...电子...
基于plc的混凝土搅拌站控制系统的相关英文资料?
1.ConcreteBatchingPlant--ClassificationGB/T10171-1988混凝土搅拌站(楼)分类2.ConcreteBatchingPlant--Specif...
机器人编程怎么入门?
1、先学习C语言,这是基础,然后学习单片机,然后就是实验步进电机的控制,译码器的工作原理和编程等等,这些是入门,有基础之后可以学点Arduino之类的,了解当...1...
c语言如何与plc串口通信?
要在C语言中与PLC进行串口通信,你需要使用串口通信库或API来实现。通常,你需要打开串口设备、设置串口参数(如波特率、数据位、停止位等)、发送数据到PLC,然...
C#调用DLL的3221225477(0xc0000005)'Accessviolation'问...
我这边有个程序用C#写的里面有段代码是调用DLL程序控制PLC的api,但是这...近年来gpt、车载、物联网之流才是热点,前端领域谁还和你讲什么编程哲学、框架...
什么是工控机,板卡能实现什么样的的功能?
较多,普...工控机种类也比较多,普通机架式的,一体化的(包含屏幕、键盘、主机)等等。跟一般的计算机相比:首先机箱显得比较笨重有些简单的防尘设计;主板不同,...
江西科技学院信息工程学院怎么样?设有哪些专业?申请方
[回答]开设了计算机科学与技术、电子信息工程、通信工程、自动化四个本科专业以及计算机应用技术、计算机网络技术、软件技术、电子信息工程技术四个专科...
很早就对编程感兴趣,可是不知道从哪里开始,有什么方法,它有什么用途?
编程可以干什么?处理数据,数据持久化是任何编程都要解决的问题,编程怎么处理数据呢?数据库引擎,比如Oracle、MySQL、PostgresSQL等关系型数据库,特点是各...
sk是什么屏幕?
SK系列触摸屏是一款基于Linux系统的人机界面,符合EN55022和EN55024标准,符合FCC、CE、ClassA,具有很强的抗干扰能力,符合工业环境的电磁兼容要求。该款产品...
扫一扫微信交流