该课程由猎学网审核,享受猎学网报名、支付保障
【学习目标】
做一名合格电工
【授课对象】
满18岁以上至60岁以下
【教材说明】
电工报名条件、电工基础武汉天子教育咨询有限公司是一个集教育信息开
【师资介绍】
万诗情教龄:保密
万诗情,女,国家二级企业人力资源管理师,国家二级无线电装配工,毕业于华中农业大学,从事教育培训工作5年,对电子电路,电工方面技术精湛,善于沟通,为人亲善,在学员中深受欢迎。
【课程简介】
武汉天子教育咨询有限公司是一个集教育信息开发、传播,教育项目策划、合作与推广,大型活动组织实施,代理招生,代理培训,广告设计宣传服务为一身的大型教育咨讯平台。公司系有志于教育事业的两位青年学者创办,由武汉市多位著名专家作为顾问指导,依托武汉强大的教育资源,进行势资源的整和运用。公司以诚实守信为根本,向广大大学生和社会在职人员提供学习、升学、等级考试、专业培训指导、就业指导等一系列教育信息咨询服务,主要针对学习、升学、等级考试方面的“疑难杂症”,结合国内外教育发展前景,提供优化学习、升学途径、等级培训考试方案。天子教育提倡“倾心为您量身定制学习、升学、等级培训考试计划,为自己创造美好未来”的口号,为学生的学习提供专业指导,同时又发挥学生自身的主观能动性,创造自己的美好人生未来。
特殊工种(IC卡)电工、焊工、电焊工从事特殊工种作业人员必须熟悉相应特殊工种作业的安全知识及防范各种意外事故的技能。要求从业人员持卡(IC卡)上岗,即由安全生产管理总局颁发《中华人民共和国特种作业操作证》方可上岗。一、工种类别:电工作业:低压电工作业、安装、维修、配电金属焊接切割作业:(准操项目:电焊、气焊、弧焊、电焊气割、建筑焊工,其他)登高架设作业:(准操项目:架设、拆除、外挂作业、高空建构、高空安装、高空维修)二、报考条件:年龄在18周岁以上,55周岁以下初中及以上学历三、报名资料:1、身份证复印件两份,湖北省内人员,即身份证号码为42开头或在湖北参加工作人员,需开工作证明。2、一寸红底彩色免冠照片6张3、毕业证复印件两份(初中及以上学历)四、收费标准办新证600元;旧证年审300元;换证600元
公司地址:武汉市洪山区民族大道上钱村健龙尚谷杰座一号楼1106
乘车线路:
地铁二号线:光谷广场站,C出口即民族大道方向前行两百米即到。
民族大道上钱村站----15路、581路、583路、728路、732路、733路、738路、739路、757路、758路、785路、788路、810路、903路、909路、913路(民族大道上钱村下车,下车即到)
民族大道下钱村站----362路,405路,538路,583路,590路,625路,718路,728路,732路,738路,739路,757路,758路,759路,785路,788路,810路,902路公交线路(下车后在民族大道和雄楚大道路口光谷方向(民族大道上钱村站牌旁边)一百米即到)
雄楚大道民族大道口站----529路,586路,625路,715路,723路,738路,811路公交线路(下车后在民族大道和雄楚大道路口光谷方向(民族大道上钱村站牌旁边)一百米即到)
联系电话:18007169851牛老师,15071162947万老师
QQ:394582367,845748414,82094731
嵌入式软件的特点是以控制为主,软硬结合的较多,功能性的操作较多,模块相互间调用的较多,外部工作环境复杂容易受到干扰或干扰别的设备,且执行错误的后果不仅仅是数据错误而是有可能导致不可估量的灾难,所以总结起来,嵌入式软件可靠性设计需注意的问题有四个方面:
1、软件接口
先说软件接口中容易出问题的地方和编程人员容易犯的错误。
软件接口调用一般会有数据的赋值,赋值变量的数据类型可能会存在强制的数据转换;需加以检查。如果为了防范出问题的话,可以添加对数据范围和数据类型的检查。
赋值数据的数量不对路,多了少了的都不好,会出现意外的赋值结果,不过还好,这项错误比较好检查。
软件编程中,会有对某一功能操作代码的复用,比如对某个端口的数据检查和控制,在整个程序中只会发生两次,为了图省事,可能就直接把该段代码直接插入实际程序模块中去了,这样,在源程序代码中,就出现了两段完全相同,完成相同功能,只是服务于不同模块的代码,按道理来说,这样设计其实也没啥问题,是的,你没错,但你的行为会使别人无意中犯错。就像青年男女相处,女孩子纯粹是想和男孩子充分享受温馨的气氛和心情,并不想更深入的发生什么,但女孩子邀请男生去的是她的家,在家里换上了家居的睡衣,窗户紧闭,放着的还是暧昧的音乐,然后无限哀怨地说“我没想到结果会是这样的”,那怪得谁来呢?在代码方面,您的这种做法与貌似引诱男孩上钩的少女无异。有人会说了,我这样写代码怎么就算引诱呢?原因是程序可能会升级,您这几行代码在实际应用过程中也不能是尽善尽美的,发现不完善的地方后,势必会修改,如果你还能想得起来,可能不会遗漏,如果修改此代码的是别的人,改了一个地方,别的地方没改,是不是还留着隐患?那如何做呢?方法不难,把这段功能单独做成一个模块即可,对此端口的读取和控制赋值均由此独立模块完成,如果数据的正确性影响大的话,还需要对端口数据的正确性进行检查和判断。嵌入式软件可靠性编程方法的四个目的是防错、判错、纠错、容错。对端口数据的判断属于判错的内容,如果数据有错的话,纠错和容错的设计方法应该不用我深入讲解了吧?
2、软硬件接
硬件如男人,对外的执行都靠它来实现,一旦出现问题,执行后的后果就不可控了,周总理说过“外交无小事”。但如何注意呢?
对读进来的硬件接口的数据要判断其真伪;
对输出的数据的执行效果要检测;
对输出的数据的可能后果要进行预防性设计,数据输出的过程,我们从设计上要做一个分析,分析的思路是一般容易局限在稳态过程,忽视了过渡过程。举例说明,比如我们控制一个支路的供电,从软件控制来说,直接给继电器一个启动信号,让开状态的触点闭合就可以了,非“关”即“开”,是受控继电器的两个稳态状态,但事实上,在从开到闭合的过程中,支路供电的电压并不是一个简单0V—24V(24V为示例而已)的跳变状态,而是一个抖动,有冲击信号的过程,这种情况在硬件上的防护是必不可少的,但在软件上也不是可以事不关己、高高挂起的。
另外在逻辑上,宜将容易被干扰和容易产生的干扰控制动作从时序上控制好,予以分开隔离。比如,控制继电器的过程是容易产生抖动尖峰脉冲而干扰数据总线和控制信号总线的,这时候从控制上,不宜同时实施数据的发送和接收工作,不宜作出其他的控制动作,惹不起咱躲得起,躲过这一阵干扰的时候总可以了吧?
3、软件代码
软件的可靠性是随着时间的推移,可靠性逐渐增加的,这一点区别于电子可靠性、机械可靠性。电子可靠性服从指数分布,在整个生命周期内,其失效率为一个常数;机械可靠性因为磨损、腐蚀、运动等因素的存在,随时间推移可靠度会下降。因此也就有了软件可靠性设计的一个特定规律和注意事项。
既然需要通过时间推移,通过不断改进,软件可靠性得到提升。那么软件的可维护性就是一个大问题了。这也是为什么软件工程管理方面特别关注软件文档、注释的原因了。但做这些要求的人只是人云亦云,并不理解如此做法的真正动机。至于注释如何去做、变量如何命名、软件配置管理如何操作,这里面既有很常规的方法,也有一些我们司空见惯然而是错误的做法。信手举上几个值得注意的细节供参考。
变量定义时宜将变量类型的变量名程中体现于其中;如AD_result_int、Cal_result_float等。这样为的好检查,防止数据类型的强制转换或强制赋值时出现数据类型的错误;
注释要充分;
代码的布局风格宜统一,便于阅读查找;
不可出现非受控的default流程,所有数值和变量,不论是调用函数时赋予的、读取接口读进来的、还是中间变量计算出来的,在应用前都宜作数据有效性的判断,并对判定的所有可能结果均做受控的对应处理。
关于软件可维护性编程方法方面的文章资料在网上是铺天盖地,不予赘述,综合采用之即可。很多文章把软件可维护性编程规范推荐做成企业的嵌入式软件可靠性设计规范,实在是有点以偏概全,有失偏颇的,用一句娱乐圈的话来说,“爱情是生活的重要内容,但它不是生活的全部”,软件可维护性编程方法亦然。
软件代码在执行中容易出现的下一个问题是跑飞,程序指针受到干扰,跳转到了一个非受控位置,执行了不该执行的代码。如果执行了不该执行的代码,如果在程序中加入了足够的变量判断、读值判断、状态检测判断等,那倒还好了,后果也不会太严重,甚至最终还是可能自己跑回来的。但有一种跑飞是比较可怕的,一般我们在R0M中存放的程序目标代码是1-3字节的指令,就是最多3条字段的目标码组成了执行动作,如果程序指针跑飞到了某个3字节指令的第2个字节上的时候,执行的后果是什么,可就真的没人知道了,即使在程序上作了足够的数据判错、逻辑跳转的防范措施,结果也不会好。而且R0M一般是不可能全部都被程序代码填满的,总有富余空间,富余空间中的默认内容是啥,这些默认字节是否也会导致一些操作呢?单片机中的默认空间是0FFH,DSP的我没查过,大家有兴趣查一下,跳到这些字段里,也是容易出麻烦的。
好了,不再罗嗦,直接给出解决方法吧,就是每隔一段程序代码或控制区域,就人为放置上几个N0P指令,在N0P指令后放置一个长跳转的ERR处理程序。注意N0P最少放置3个,这样任何的跑飞最多只能占用2个N0P,第三个N0P一样还是能把程序代码揪回来,揪回来后就执行ERR处理程序。
如果碰到安全性、可靠性等级要求比较高的程序,推荐的处理方法可以采用热备份的处理方法,即用两段代码同时执行同一个功能,执行的结果进行对比,如果一致则放行通过,如果结果不一致,咋处理就看您的喽。但是……国人有的是办法,为了图省事,你领导不是要求我编热备份程序吗,那好,我就把原来的代码复制一遍,重新插入到某个地方,您这和明朝时代冯保太监(还是严嵩、张居正阿?拿不准了,大家有兴趣的翻看《明朝那些事儿》查阅下)玩的没啥两样,自己写奏章,自己给自己审批奏章。既然是备份就是为了防止一个人出问题,那的办法自然是不同的人来编这段,如果原理计算方法上也不同,数据采集通道也不同,那就过年带娶媳妇的,好上加好了。
安全性和可靠性的编程细节注意事项还有很多,窥一斑难见全豹呵,诸位仁兄一起努力钻研了。
4、数据、变量
变量的定义是为的避免各种混淆,同一程序内数据和数据的混淆、不同人读程序时对变量理解上出现的二义性、视觉效果上容易出现的错误(字母的“o”和数字的“0”,字母的“l”和数字的“1”)。这里要遵循一个“要么相同,要么迥异”的基本规则,这条规则在很多的领域都有应用,用的最绝的是朱元璋,对待贪官,要么不理你,自觉点您贪差不多了就收手吧,您自己不收手的话,做的过了直接就杀,株连几族,所以在明朝,朱元璋是杀人最多的皇帝;在结构的防呆性设计上,接插件的选型也是如此,如果一个乳白色和一个浅灰色的同类接插件,的选择是有很直观的视觉差异或结构的差异,或者干脆就是相同的,相同须基于一个前提,互换性要好。
用显意的符号来命名变量和语句标号。标识符的命名有明确含义,且是完整单词或易理解的缩写。短单词通过去掉“元音”形成缩写;长单词取头几个字母形成缩写;一些单词有公认的缩写。如:
Temp—tmp;
Flag—flg;
Statistic—stat;
Increment—inc;
Message—msg。
顾问将于24小时内联系您!