机器调试:程序员的检查表

内部机器提示和技巧:控制工程师需要练习这些编程技巧,以确保项目时间压力不会损害机器项目。

通过作者Nishant Unnikrishnan 2012年10月31日

在开始机械项目之前,大量的重点放在规格收集和项目规划的重要性上。一旦项目开始,控制工程师通常会在项目经理的压力下按时完成编程,即使他们可能会等待机械和电气团队完成他们的部分项目。随着最后期限的临近,为这台机器编程的控制工程师面临着时间紧迫的局面。由于商业原因,在许多情况下,最终编程是在机器交付给客户之后完成的,因此测试不完整。

在按时交付项目的竞赛中,程序员可能会在编程完成后跳过“收尾”步骤。下面是8个必要的总结步骤,它们使项目易于维护、易于排除故障,并且在需要时易于构建。

程序

1.将控制算法中的各个区域(从基本设计文件)映射到项目中的图纸:基本设计文件是项目设计的第一步。设计文件将客户需求转化为包含机器操作所需算法设计的行动计划。程序员使用基本设计文件中列出的控制算法来编写机器操作所需的运动控制和其他逻辑代码。完成一个控制算法可能需要多个图纸或程序组织单元(pou)。在这种情况下,一旦编码完成,将算法的特定部分链接到pou的映射对于理解项目的代码流是必不可少的。这样的映射可以使用户更好地理解程序的布局和机器控制中使用的序列。此图可以帮助理解具有多任务处理能力的机器控制器上的序列问题。

这样的文档将是一个很好的起点,在最初的程序员交出机器代码后,有人将获得机器代码的所有权。在项目本身中可能不可能包含这样的文档。为此目的可能需要一份单独的文件。图1中显示了一个简单的示例,说明如何将算法转换为带有单个绘图/ pou角色的彩色编码流程图。

2.记录每个POU的输入和每个POU的输出:记录流入图形的输入和流出图形的输出将有助于用户理解项目中的数据流。此类文档将有助于理解流程并对应用程序进行故障排除。这样,项目是模块化的,每个POU或图纸都可以独立检查功能。例如,下面的图2详细说明了项目一部分中的数据流。要解决与H10.03相关的问题,可以查看H10.03的输入和输出。只有当H10.03的输入符合预期时,用户才应该进入H10.03对那里的代码进行故障排除。如果H10.03的输入不像预期的那样,用户不应该深入研究H10.03中的代码。

3.在代码的关键点定义变量(状态变量/参数)以帮助排除故障:模块化和透明性是易于排除故障的好代码的重要属性。为了模块化和透明化,程序员必须努力将复杂的序列分解成更小的序列,这样就可以密切监控变量的准确性。这也为易于维护铺平了道路。这样的编程实践可能会影响程序员在编程时的时间,但它们将在启动期间和之后的故障排除期间节省大量时间。

图4显示了为使代码模块化而分解的结构化文本(ST)代码的屏幕截图。如果代码没有通过引入额外的变量而模块化,那么代码的总行数将会很小,但是复杂且难以管理。

在程序开发期间,将功能放置在关键位置以监控运动应用程序中的运动参数,从长远来看将大有帮助。这将防止在应用程序启动的调试阶段浪费不必要的时间。这在涉及同步运动的应用中非常重要,如电子凸轮或电子传动装置。上述运动函数涉及各种内部参数,理解这些参数将有助于应用故障排除。

4.在代码中规划零件更换策略:在机器的生命周期中,机器的各种部件将不得不更换。当由运动控制器控制的机器组件被替换时,运动控制器应该能够从新组件中提取相同的功能,就像在旧组件磨损或故障之前从旧组件中提取一样。这涉及到保持工作组件参数的副本作为项目的一部分。程序员必须预见到这样的场景,并设计具有此功能的代码。大多数运动控制器具有保留参数和比较参数的能力。如果需要,保留的参数可以发送到安装在机器中的新组件。在机器调试之前将这些方面合并到代码中是有益的,而不是等到组件出现故障才考虑更换策略。

完成项目并记录启动

1.保存参数文件作为项目的一部分(在最终机器设置之后):调试机器之前的最后一个步骤是参数优化和打开运动组件以优化性能。这将涉及编辑控制系统中各个部件的参数。在参数确定之后,程序员应该做额外的工作来保存这些参数的副本,作为项目的一部分。

2.审查项目访问权限:很多时候,oem使用自定义算法来控制运动。如果OEM希望对最终用户保护某些算法实现,则应该对这些代码进行密码保护。大多数编程软件产品都有读/写保护的选择。代码中不供公众查看或编辑的选定部分应置于密码保护之下。

3.在项目移交时审查可交付成果:在客户收到项目时,程序员应该做出安排,以便移交所有需要的文件。如果用户希望复制这台机器,那么OEM和用户应该就是否可以在其他机器上重用代码和项目达成一致。程序员应该了解该软件如何允许用户创建项目图像。可以执行的各种检查有:

a.如果程序员希望允许用户在以后将项目从控制器上传到用户的PC上,则将源文件保存在控制器上。这是备份的一种形式。这允许用户提取当前在计算机上运行的项目。

b.移交前对项目进行锁定。如果用户不希望对项目进行任何编辑,并且希望仅将项目用于监视,则程序员应该锁定项目。锁定项目有助于版本控制。用户将无法对锁定的项目进行编辑。版本控制的另一个良好实践是使用日期作为项目名称的一部分。

c.确保所有固件和用户库都已编译并包含在主项目中。如果项目是在附加用户/固件库的帮助下构建的,而这些附加用户/固件库不是标准软件安装的一部分,程序员应该采取额外的步骤将这些库包含在主项目中。程序员还应该检查确保库和路径与主项目正确链接。

d.列出帮助用户克隆机器的详细步骤,如果OEM希望允许用户这样做的话。

4.文件性能分析(图表和数字):在启动时,以运动参数图表和加工零件数量记录机器性能是必不可少的。这将作为故障排除、调试其他机器、分析改进等的模板。启动性能文件应由客户审核和批准。

通常,当用户抱怨机器没有按照规格运行时,机器启动时制作的文档将派上用场,以便进行比较和验证。这将有助于解释性能随时间的差异。在运动应用程序中,必须在机器控制器级别和驱动器级别进行性能分析。控制器端的分析将有助于整体评估机器的性能。驱动分析将有助于对所讨论的轴进行详细的评估。可以从这样的性能图中收集到各种性能因素,如调优和过滤。

没有适当处理这些步骤的程序员就好比汽车制造商没有将备用轮胎和用户手册作为新车下线的一部分。

Nishant Unnikrishnan是安川美国公司的应用工程师。编辑:马克T.霍斯克,内容经理,CFE媒体,控制工程设备工程mhoske@cfemedia.com

关键概念

控制编程技巧:

-画一张地图

文件输入

——把变量

-制定零件更换策略

考虑一下这个

在自动化编程项目中,当你谈论编译和包括固件和用户库时,四分之三还不错吗?

上网-查看下面文章的链接

UML用例、序列图:很容易转换为可执行代码

失败项目的七个习惯