0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在二次开发或基于芯片的开发中如何注意机器人软件的设计

产业大视野 来源:cg 2018-12-03 09:34 次阅读

AGV、机械臂的设计过程中,为了CR或CE或客户要求,通常需要增加急停、使能、保护性停止、速度控制、安全门锁等安全回路,在设计这些回路时,有的单位选择的是施耐德、Sick或西门子的安全PLC,而且可能会进行二次开发,有些单位会使用DSPARMFPGA芯片自己开发安全控制板或驱动器

说到这里,不得不说当前行业内存在一个很普遍的问题,即是很多第三方普遍只评估硬件方面是否符合PL的要求(PL计算),对软件方面则不闻不问。这样做其实是有极大的风险,很容易被业主单位或其他第三方机构质疑,而无法满足特定要求。不管二次开发的应用软件还是嵌入式软件,作为安全回路的核心控制逻辑,其软件安全性至关重要。本文将介绍在软件开发中应注意的关键点。

要向各位看官澄清的是安全软件的开发为什么要满足特定的要求?能不能按照企业平常的开发过程开发。众所周知,不管使用什么语言、什么模型、什么算法或者什么人开发,软件内不可避免的会残留很多bug,这些bug只要在特定的条件下,就会导致软件运行产生错误,也叫系统性失效。对于非安全应用来说,只需要及时修复即可,但是,对于安全应用来说,就有可能导致安全功能无法执行或则执行错误,进而引起人员伤亡等事故。因此,安全相关软件的开发必须要慎之又慎,相关安全标准中特定要求其实就是针对软件开发过程的中的要求,目的就是尽可能减少残留在软件中的Bug,以达到提高AGV、机器人安全性的期望。下面将会详细介绍一些其中的关键点,供各位看官理解。

一是适用标准的选择

对于二次开发的应用软件来说,如果业主单位或威廉希尔官方网站 标准中要求达到相应的PL等级,则软件在开发过程中遵循ISO 13849-1-2015 中4.6节的应用软件相关的要求即可。对于嵌入式软件来说,如果PL的要求在a~d之间,则按照遵循ISO 13849-1-2015 中4.6节的嵌入式软件开发要求即可;如果PL要求是e,则必须遵守IEC61508-3中的要求开发。此外,对于安全控制板或模块来说,可以单独作为产品售卖或应用在多个系列产品上,一般推荐IEC61508,ISO13849以及IEC62061这几个标准都要满足。

二是开发模型的选择

目前行业内常用的有V模型、瀑布模型、敏捷开发模型、螺旋式开发模型等,但是安全软件的开发是趋向于保守的,它不是以开发效率为目标,而是以开发出安全可靠的软件为目的。因此,目前IEC61508,ISO 13849和IEC62061中都是要求开发中使用V模型。V模型最大的益处在于测试的提前介入,即是要求测试工程师需要参与评审需求、架构设计、详细设计等文档,并同步完成测试用例的设计,编辑测试规范。目的是通过测试的人员的参与,及时发现需求或设计中存在缺陷,提高需求或设计的合理性。但是V模型也有一个最大的问题,就是迭代。如果测试发现bug或者后面在进行变更,设计应返回到V模型的左半边的相应阶段,并重新按照V模型执行,这样就会给开发人员带来大量的工作量。

▲图1 软件开发的V 模型

三是开发工具的选择

对于开发工具的选择,功能安全总的的要求,即是开发过程中必须使用经过工具资质确认的开发工具,所谓的确认有三种可能,一是对于应用软件来说,可以采用PLC供应商提供的开发工具;二是使用经过使用证明的开发工具,即是在行业内或类似产品开发中已被大量使用的工具;三是使用经过功能安全认证的工具,即是有特定第三方团体已对工具进行过认证,例如C++ test已经通过了T2类工具的认证,Cantata也是通过认证的。此外,还需要对开发工具的版本、使用手册、注意事项等内容进行确认,编辑工具确认报告。另外,需要注意的一点是,软件在线测试工具,在开发过程中,需要和软件本身执行相同的PL或SIL要求。

▲图2 IEC 61508标准中对工具的要求及解释

四是开发语言及编程准则的选择

目前常用的软件开发语言分为有限可变语言和全可变语言,有限可变语言指的是梯形图、功能块图和顺序功能图等语言,全可变语言指的是C、C++、C#等,有限可变语言常用在应用软件的开发中,全可变语言常用在嵌入式软件的开发中。在IEC 61508的标准中,对语言要求见图3.需要说明的是,虽然ADA、PASCAL和Modul2语言是SIL1和SIL2强烈推荐的,但是由于这些语言已经很老,现在已几乎无人使用。嵌入式软件开发中,目前最常用的是C系列的语言。

▲图3 软件开发语言的选择

另外,在利用上述语言进行编程时,编程准则的使用功能安全标准中也是有要求的。下列连接是推荐使用的编程规范,图4、图5和图6是标准中要求的采用的编码准则。实际使用时,通常推荐软件工程师都要采用,并且要按照编程准则,执行静态规则检查或者代码评审。

编程规范举例

http://www.misra.org.uk/

http://java.sun.com/docs/codeconv/index.html

http://www.gnu.org/prep/standards/

▲图4 ISO 13849中的编程要求

▲图5 IEC61508 对编程语言的通用要求

▲图6 IEC61508面向对象的编程要求

五是开源代码的使用

开源代码是软件开发中很难回避的一个问题,众所周知,为了减少开发的工作量,节省人工成本,提高开发效率,很多企业在开发中都会使用大量的开源代码,这些开源代码有些是软件开发库中提供的,有些是从网上搜集到的。这些代码在功能安全软件开发中是由极大的风险,最大的风险在于这些代码在开发过程中未遵守功能安全开发的流程和要求,有可能存在大量未知的bug,进而引起安全功能失效。不过,IEC61508功能安全标准中也并未完全排除开源代码的使用。标准中提供了三种途径,一是使用完全按照功能安全要求开发的源代码,这个需要提供证明,;二是使用经过使用证明的开源代码,也就是说需要提供该开源代码在类似产品中使用的经典案例,另外也需要做一些额外分析;三是重新对开源代码的开发过程进行正式的评估,也就是说,使用人员需要提供开源代码开发的全过程的设计文件。

此外,还有一个捷径,可以分享给大家,就是开发人员根据开源代码的逻辑,按照功能安全的要求重新编写和测试。这样可以省很多工作量。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28390

    浏览量

    206950
  • AGV
    AGV
    +关注

    关注

    27

    文章

    1304

    浏览量

    41076

原文标题:【Robot学院】机器人安全相关软件设计关注要点

文章出处:【微信号:robotn,微信公众号:产业大视野】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAXA2011二次开发,CRX; CAX2007二次开发

    CAXA2011二次开发,CRX; CAX2007二次开发,EBA QQ:46841341 电话:*** 何生 标题、明细、自动参数化产生图纸,PDM、PLM集成系统,面积、重量、各种个性化程序
    发表于 01-05 23:05

    手机模块二次开发

    手机的wifi模块、4g/3g通信模块、蓝牙模块等固有模块,进行二次开发时,需不需要对硬件本身进行改造?或者是二次开发普遍都需要对硬件改造还是普遍都不需要对硬件改造??
    发表于 06-29 11:49

    NIRScan Nano二次开发教程

    你好, 我购买了NIRScan Nano,想自己开发Windows软件,所以需要贵司提供二次开发包及教程,请发链接邮箱。 邮箱:support@linax.cn  Jason 非常感
    发表于 06-21 00:28

    面向对象的参数化CAD二次开发方法研究

    【摘要】通用CAD系统采用开放式结构体系,提供相应的二次开发手段和方法。研究了面向对象的参数化二次开发威廉希尔官方网站 及方法,以期为CAD的二次开发提供指导,并以Pro/Engineer为软件
    发表于 03-19 21:37 34次下载

    AutoCAD的二次开发

    AutoCAD的二次开发 AutoCAD的二次开发主要涉及以下内容:(1) 编写各种用户自定义函数并形成若干LISP、ARX、VLXADS文件,以及一些DCL
    发表于 02-14 16:59 1819次阅读

    ANSYS的二次开发威廉希尔官方网站

    ANSYS的二次开发威廉希尔官方网站 ANSYS提供的二次开发工具有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface
    发表于 10-02 10:42 2046次阅读

    基于VC的Cadence二次开发

    文中研究了用VC对Cadence做二次开发,使用VC编写操作界面,通过VC与SKILL语言通信,实现了VC界面对Cadence软件的控制,完成特定操作,给出了实现的代码。
    发表于 10-19 14:38 41次下载
    基于VC的Cadence<b class='flag-5'>二次开发</b>

    何谓CAD二次开发? AutoCAD都有哪些二次开发工具?

    AutoCAD的二次开发主要涉及以下内容: (1)编写各种用户自定义函数并形成若干LISP、ARX、VLXADS文件,以及一些DCL文件。 (2)建立符合自己要求的菜单文件,一般可在AutoCAD原菜单文件
    发表于 10-24 16:31 4201次阅读

    AutoCAD VBA二次开发教程

    AutoCAD VBA二次开发教程,学习二次开发的顶起
    发表于 11-02 16:16 0次下载

    二次开发串口通信协议

    lobot机器人二次开发
    发表于 05-09 08:55 7次下载

    对功率计进行二次开发

    功率计做二次开发首先要确认的就是通讯的接口,ZLG致远电子PA300系列功率计提供USB、GPIB、以太网以及串口接口,4种接口免费标配,都可以用于二次开发
    的头像 发表于 04-29 15:12 3051次阅读

    空间光调制器的简便控制方法:灵活应用二次开发

    了数据从编程软件到空间光调制器的输送任务。 02.二次开发模式有哪些好处? 二次开发模式,灰阶处理,中心点的计算,图像到硬件的投射统统不
    的头像 发表于 05-11 13:37 647次阅读
    空间光调制器的简便控制方法:灵活应用<b class='flag-5'>二次开发</b>

    【产品应用】LoRa网关与二次开发终端的神仙搭配

    。ZLGLinkSDK二次开发简介ZLGLinkSDK包是广州致远电子开发的LoRa智能组网二次开发包。该SDK主要包含有芯片外设demo、LoRa裸驱动demo、ZLGLink智
    的头像 发表于 02-02 10:57 726次阅读
    【产品应用】LoRa网关与<b class='flag-5'>二次开发</b>终端的神仙搭配

    「科聪二次开发平台」移动机器人开发,只需3步!

    科聪提供独家二次开发平台,配合各类工具型软件,简单、灵活、快速完成移动机器人开发。随着移动机器人应用场景的持续扩展和整机形态的不断演化,厂商
    的头像 发表于 11-06 10:53 1148次阅读
    「科聪<b class='flag-5'>二次开发</b>平台」移动<b class='flag-5'>机器人</b><b class='flag-5'>开发</b>,只需3步!

    SOLIDWORKS二次开发应用范围与实例

    SOLIDWORKS二次开发为企业和设计师们提供了广阔的定制化空间,能够更好地满足复杂多变的设计需求,帮助工程师和设计师提高工作效率,实现更复杂的自动化任务。如您有SOLIDWORKS二次开发需求,欢迎咨询Solidkits
    的头像 发表于 12-13 16:33 143次阅读