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功能安全标准中也并未完全排除开源代码的使用。标准中提供了三种途径,一是使用完全按照功能安全要求开发的源代码,这个需要提供证明,;二是使用经过使用证明的开源代码,也就是说需要提供该开源代码在类似产品中使用的经典案例,另外也需要做一些额外分析;三是重新对开源代码的开发过程进行正式的评估,也就是说,使用人员需要提供开源代码开发的全过程的设计文件。

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

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

    关注

    206

    文章

    27033

    浏览量

    201395
  • AGV
    AGV
    +关注

    关注

    26

    文章

    1091

    浏览量

    40598

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

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

收藏 人收藏

    评论

    相关推荐

    电话方案二次开发

    该电话方案提供了功能强大的自主协议接口,可供其他公司进行二次开发。详情请见附件。
    发表于 09-28 16:58

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

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

    基于labview使用dll对仪器的二次开发

    论坛潜水一年多了,看到各位大神们的经典作品,都会在线下仔细琢磨,最近老板布置任务,要求用labview对一个波形发生器做二次开发,厂家说明里面有dll文件,希望大家推荐一本关于用labview调用dl对仪器二次开发的书籍,自己
    发表于 07-05 16:44

    关于SimpliciTI协议的二次开发,高手请进!

    关于SimpliciTI协议的二次开发,高手请进!最近用到基于CC1110芯片的SimpliciTI协议二次开发,基本情况如下,请高手指点是否可行,如有善长搞这方面的,希望能够进合作(QQ
    发表于 09-18 11:38

    【mBot申请】mBot机器人二次开发

    上进行二次开发项目描述:目前暂时的想法是希望能够已有的平台上加上摄像头模块,实现视频的传输,定制安卓app,能够在手机上看到视频内容,如果条件允许,希望能够实现远程控制(wifi模块替换蓝牙)
    发表于 10-29 14:13

    新手学习机器视觉二次开发(工业视觉)应该从哪里入手,

    新手学习机器视觉二次开发(工业视觉)应该从哪里入手,看了一些资料NI公司的,DAQ、vison、IMAX等似懂非懂,如果想做工业机器视觉的二次开发,有没有比较系统,较易入门的资料或者视
    发表于 03-05 17:21

    机器人公司招聘嵌入式软件开发

    二次开发改造负责管理分配要求1.计算机、电子信息、自动化等相关专业,应届毕业一年左右;2.熟悉C、C++JAVA语言编程3.对单片机、ARM(STM32arm9\A8
    发表于 09-08 12:29

    手机模块二次开发

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

    手环二次开发

    深圳市云石智能科技开发有限公司主营健康穿戴手环(心率温度血压手环)与定位采集基站二次定制开发SDK,应用多种项目,有需要手环二次开发请联系QQ:3072853807,电话:0755-2
    发表于 09-25 17:05

    NIRScan Nano二次开发教程

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

    请问ALIENTEK的GUI能提供二次开发吗?

    开发指南中的综合实验提到了:GUI(ALIENTEK 编写,非ucGUI)想问下,如果买你们的板子,可以基于你们的GUI二次开发吗?也就是有没有API以供客户二次开发呢?谢谢!
    发表于 10-15 03:21

    使用旅游机器人需要注意哪些问题?

    适用于旅游景区景点,可以进行旅游相关知识传播,旅游相关视频播放,旅游注意事项讲解等等。功能可以定制化,并且含有开放接口,适用于二次开发利用。选用专业的机器人必须要注意以上几个事项,有利
    发表于 06-12 17:04

    ABAQUS二次开发应用实例分析

    不免具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低
    发表于 07-07 17:05

    请问bleuartappdll是否提供调用方法,可以供客户二次开发吗?

    请问这些工具软件是否支持二次开发如果可以二次开发,这些dll是否可以用于商业软件
    发表于 09-06 07:08

    二次开发串口通信协议

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