嵌入式软件机器编程为啥选择梯形图做为编程语言?

(机器编程系列文章二)html

 

嵌入君程序员

 

上一篇《机器人程序员正朝咱们走来,你们准备好了吗?》文章中,谈到了我我的的观点,在一个编程平台中,是否算是机器编程,须要看机器完成的代码占总编码的量和对编程人员的技术要求。那么,咱们在设计机器人程序员系统时,须要刻意的设计,尽可能让编程者只利用不多的知识,轻松掌握编程技能,同时尽可能减小编程者的工做量。编程

 

梯形图(LAD, LadderLogic Programming Language)是当前流行的PLC工控机或逻辑控制器使用的编程语言,在经常使用的继电器与接触器逻辑控制基础上简化了符号演变而来,具备形象、直观、逻辑简单的特色。掌握该语言不须要比较高的专业知识。海外也是要求没有本科(学士)文凭的电工掌握梯形图语言的编程。网络

 

 

1、   梯形图语言能够实现机器编程编程语言

 

在咱们的嵌入式软件的开发平台中,选择了PLC梯形图语言。由于梯形图语言,能够把程序模块封装好,放入系统内。而后制做一个图标,客户使用该图标,就至关于调用了该程序模块。学习

 

咱们下边使用一个咱们系统的简单程序例子说明这个问题。编码

 

 

 

图中共2个梯级。第一个梯级是控制一个定时器的使能,第二个梯级是控制计数器计数。左边的边线表示元件挨着左侧绿色边线输入逻辑值为真或二进制的1,右边的绿线表示一行的结束,和右侧绿线相连的元件必须是输出元件,表示执行某一个动做,好比给某个变量赋值、执行一个代码模块等等。不和右侧绿线相连的元件都是输入元件。一个元件的左侧是逻辑输入,右侧为逻辑输出。当一个元件左侧输入为绿色时,表示逻辑输入是真或为二进制的1。若是左侧输入是红色,表示逻辑输入为假或二进制的0。一个元件的右侧为绿色时,表示输出逻辑为1,反之为0。对于绝大多数输出元件来讲,输入为绿色时,该元件执行相应的动做,不然,不产生动做。设计

 

这种编程方法屏蔽了大量的计算机是软件和硬件知识,可使编程者能够轻松掌握梯形图的编程逻辑,调试时,由于整个逻辑和数据(或参数)显示都比较容易理解,从而使调试变得相对其余软件编程平台而言,变得很是简单。好比上边的程序,每一个元件输入输出都显示在图中,元件的关键参数和状态值也显示在屏幕上,调试时,一目了然。调试

 

咱们能够这样理解梯形图程序,一个梯级(表示一个完整的逻辑语句,能够多行),表示若是目前系统和程序输入元件知足某种条件,输出元件(紧挨着右侧绿边线的元件)将执行相应的动做,好比给某个变量赋值、启动定时器、计数器计数、执行某个代码模块等等。反之,则不执行。更简单的观察为输出元件的输出是绿色,表示执行,输出元件的输出为红色,表示条件没有获得知足,不执行。上图的第一梯级,条件知足,定时器工做。第二个梯级,条件不知足,计数器的计数值不加1.htm

 

从上边例子,不难看出,掌握梯形图编程的逻辑是比较简单的。即便不懂逻辑,只要一个梯级中,有绿色的信号传递到输出元件,输出元件便可正常工做(发生动做)。再者,咱们能够把代码模块用一个元件表明,即一个图标便可调用一段很长的代码段。简而言之,梯形图能够作到“一句顶一万句”的效果。

 

 

2、   梯形图语言能够实现“准机器编程”

 

    再结合我上篇文章提到的大棚温控的项目,咱们能够把温度检测的部分(能够多个传感器探头)封装成一个模块,把控制驱动模块也封装成一个模块,不一样的模块用型号加以区别,占用资源能够用元件的地址加以区别。这样就把相应的图标变成咱们上边图示控制定时器的例子(只有一个梯级,占一行)相似了。固然,还须要客户进行参数设置。但这个操做就和使用手机上网购物的操做相似,很容易掌握了。

 

    从上面的例子,就不难理解咱们选择梯形图语言做为咱们嵌入式软件开发平台的编程语言的理由了。也就是说,使用梯形图语言编程,只要提供的代码模块足够,能够达到机器编程的目的。

   

    固然,实现机器人程序员是理想的例子,须要传感器厂家,各类软件开发商,平台开发者合做才能实现。我我的认为,现实中更多的情形是“准机器编程”或“机器人辅助编程”的状况。更相似PLC编程和应用的情形。

 

仍是大棚温控的例子,编程人员能够利用咱们嵌入式软件开发平台自己提供的各类采集数据模块,滤波模块和控制模块,外加上一些数据处理模块和运算模块,一样能够实现上面的例子。只是两个图标变成了调用两个子程序的图标而已。

    

虽然没有彻底依赖实现机器人程序员编程,但使用了梯形图编程语言编程,编程人员本身完成的项目的代价也很小。即便彻底没有接触梯形图语言编程的人,具备中学学历的员工,学习一个月也就基本掌握了。由于开发平台中,提供了大量程序模块,使编程人员很是容易的编制一个控制项目的完整程序。具备梯形图编程经验的员工(不须要该员工懂计算机技术),通常也就是不到30分钟,能够完成了大棚温控的项目的程序编写。

 

    固然,有些软件模块是通常编程人员难以实现的,好比电机控制模块,变频模块等等。咱们的平台能够提供第三方软件和硬件接口。第三方能够把本身芯片和咱们平台提供的芯片(被开发对象)链接在一块儿,既能够采用网络的形式也能够直接IO相连。编程人员调用现成的模块或图标便可。目前已经有芯片厂商把多核制做在一个芯片上,灌制软件能够分开,这样就很容易把其余厂商的软件和开发平台的开发对象都放在一个芯片中。芯片的价钱也没有高多少。

 

 

3、   梯形图语言也能够用于相似普通的软件开发平台

 

梯形图语言能够“一句顶一万句”,也能够“一句顶一句”。好比把一个字节或字从一个地址移动到另外一个地址,这实际和汇编语言的一条指令等同。所以梯形图也能够做为普通的程序开发语言使用。嵌入式软件的开发平台使用梯形图语言的其余功能和PLC相似, 便于“计算机外行”来编程,梯形图语言在处理计算、字符等方面显然落后于其余的软件开发系统。没有必要回避梯形图编程语言的这些缺点。这也是有一利必有一弊。

 

其实能够这样理解咱们的嵌入式开发平台。其实提供给客户的东西就已是成品或半成品的东西。客户只需作少许的工做,就能够变成成品了。这也是咱们设计这套嵌入式开发平台的“初心”,就是为了大下降客户开发成本和开发周期。

 

诚然,用开发平台提供指令(元件)也能完成嵌入式系统的编程,但通常不提倡这么作。用梯形图语言编程,应尽可能使用系统提供的代码,尽可能少的本身编程,让绝大多数代码由系统提供,而不是本身使用“一句顶一句”的指令去编写。这样即提升了效率,下降了成本,也保证了程序运行的可靠性。

 

使用“一句顶一句”编程时,是没有办法的办法。固然,必要时,也必须使用。这也增长的编程的灵活性和扩大了平台的使用范围。

 

其实咱们把各类处理方式使用C语言、汇编语言或其余语言事先编好,放在平台中供给客户使用。客户使用梯形图语言编程,实际都是调用这些用其余语言编好的模块而已。我认为,在使用梯形图语言时,尽可能使用系统提供的代码,少使用本身编写的普通编程代码(相似于普通C语言功能的代码),这样提升了编程速度,也是一种扬长避短的方法。

 

 

4、机器编程使用梯形图做为编程语言的梳理和总结

 

从咱们接触到的编程平台来看,梯形图语言编程掌握比较容易,也能把复杂的代码模块用图标表示,便于实现机器编程。

 

从技术现状来看,彻底实现机器编程有很大难度,但使用咱们嵌入式软件开发平台提供的资源,可以在较短的时间内,完整程序的编制是没有问题的。这个应用场景和市场流行的PLC工控机类似。考虑到几乎不多用到计算机知识,系统资源配置,整个代码量绝大多数是系统完成,而不是编程者完成,这种状况即便不算机器人程序员完成,也算是“准机器编程”。从咱们的经验来看,考虑到编程人员不须要消化芯片手册,也不须要了解硬件资源的特性,不需编程者管理整个系统和对系统资源进行配置,编程效率至少提升了10倍以上。大量节省了整个软件制做的成本和编制时间。随着系统逐步丰富,第三方厂家和软件商不断提供各类配套软件,编程平台会不断向机器人程序员编程靠拢。

 

另外,梯形图语言也能像通常的开发平台同样制做代码,弱点是计算和字符处理的处理。嵌入式主要用于各类电子设备、工控、飞行器、机器人等等,字符处理相对比较少。大部分解决的问题数据采集,就地控制等等,在制做梯形图编程的平台时,必定有经验丰富的控制工程师参加,把大部分采集、滤波、控制程序已经制做成了现成的代码模块,实际上也相对规避了梯形图语言的弱点。

 

之前的梯形图语言基本都是用在PLC工控机中,较少涉及字符的使用。当梯形图语言用在嵌入式系统时,由于液晶等硬件的使用,必然涉及字符的使用,咱们平台从此会适当加入针对液晶和字符处理的一些功能指令(元件),扩大平台的使用范围,为用户提供方便。

 

 

相关文章:

机器人程序员正在朝咱们走来,你们准备好了吗?

(机器编程系列文章一)

https://www.cnblogs.com/MaxXie/p/12013713.html

相关文章
相关标签/搜索