本资料由深圳市综科智控科技开发有限公司编辑整理,深圳市综科智控科技开发有限公司是一家专注于生产与研发工业智能自动化设备及软件系统、工业物联网设备及软件系统的高新技术企业。公司致力于为客户提供从前端数据采集、传感器接入、IO控制、人机交互的一整套系统及方案,帮助客户实现其自动化设备及物联网设备的本地或者远程分布式控制与管理。产品涵盖:【可编程io控制器/采集器】、【数据采集DTU/RTU】、【物联网IOT网关】、【通讯联网路由器/交换机/放大器/中继器】、【PLC】、【人机交互系统】。广泛用于:【工业智能自动化】、【物联网】、【机器视觉】、【数字工厂】、【智慧农业】、【污水处理】、【环境监控】、【智慧交通】、【智能仓储物流&AGV】、【智慧城市】、【智能楼宇】、【安防监控】、【电力监控】、【无人值守】、【智能储物柜】、【智慧医疗行业】...
一、 PLC编程
PLC是采用“顺序扫描,不断循环”的方式进行工作的。即在PLC运行时,CPU根据用户按控制要求编制好并存于用户存储器中的程序,按指令步序号(或地址号)作周期性循环扫描,如无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至程序结束,然后重新返回第一条指令,开始下一轮新的扫描,在每次扫描过程中,还要完成对输入信号的采样和对输出状态的刷新等工作。
PLC的一个扫描周期必经输入采样、程序执行和输出刷新三个阶段。
PLC在输入采样阶段:首先以扫描方式按顺序将所有暂存在输入锁存器中的输入端子的通断状态或输入数据读入,并将其写入各对应的输入状态寄存器中,即刷新输入,随即关闭输入端口,进入程序执行阶段。
PLC在程序执行阶段:按用户程序指令存放的先后顺序扫描执行每条指令,经相应的运算和处理后,其结果再写入输出状态寄存器中,输出状态寄存器中所有的内容随着程序的执行而改变。
输出刷新阶段:当所有指令执行完毕,输出状态寄存器的通断状态在输出刷新阶段送至输出锁存器中,并通过一定的方式(继电器、晶体管或晶间管)输出,驱动相应输出设备工作。
PLC的用户程序,是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制规范,按照实际需要使用的功能来设计的。只要用户能够掌握某种标准编程语言,就能够使用PLC在控制系统中,实现各种自动化控制功能。
根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3),PLC有五种标准编程语言:梯形图语言(LD)、指令表语言(IL)、功能模块语言(FBD)、顺序功能流程图语言(SFC)、结构文本化语言(ST)。这五标准编程语言,十分简单易学。
梯形图语言
梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。 梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。 梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
指令表语言
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。图3就是与图2PLC梯形图对应的指令表。 指令表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
功能模块图语言
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
顺序功能流程图语言
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
结构文本化语言
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。 结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
二、 电脑编程
语言汇总
工业编程语言:A+ | Ada | 汇编语言| B |Brain| C++ | C++ |C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon |ObjecTIve-C|Ocaml| Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# |Visual Basic .NET|易语言
脚本编程语言:AcTIonScript | JavaScript | JScript |Nuva| PostScript | VBScript | lua
学术编程语言:APL/J | Haskell | Logo | ML |pascal|Prolog | Scheme | SAC
其他编程语言:ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula
语言发展
计算机主要是由两大部分构成的,硬件和软件,硬件就不用解释了,你的主机、显示器等等都属于硬件,但是光有硬件电脑是没有办法使用的,除非你拿机箱当柜子用!呵呵!所以就必须有软件支持!软件又分为系统软件,也就是你经常用的操作系统,WIN XP,Win 2000等等!再就是通用软件和应用软件。计算机语言也有一个发展过程,从最开始的计算机语言,也就是011010111,那个时候编程恐怕是非常痛苦的事,因为你要会用0和1表示一切!后来逐步发展,把一些常用的指令用英语单词表示出来,形成了汇编语言,这个时候也是比较痛苦的,你要记住那些单词的含义不说,还必须告诉计算机每一步要怎么做,而计算机又是一个非常笨的东西,你掉一个步骤他就罢工!而且汇编语言的可移植性差,也就是说你在这台电脑上写的程序到另一台电脑上可能就不能用了。之后为了方便软件移植,高级语言诞生了,高级语言不要求程序员掌握计算机的硬件运行,只要写好上层代码,编译软件会将高级语言翻译成汇编语言,然后再将汇编语言转化成计算机语言,从而在计算机中执行。因此,程序员使用高级语言写得代码可以移植到其他计算机执行,而不用考虑计算机硬件的特性。
语言使用方向
想设计一款美观的Web应用
JavaScript可使网站看起来更棒,同时存在大量可兼容的框架,如Ember、Angular、Backbone等,它们都可以帮你组织、构造兼容不同浏览器的Web应用。目前,JavaScript正逐步成为主要的企业级编程语言。
JavaScript可在几乎所有的浏览器上运行,可同时用来编写前端与后端服务。无论你开发什么应用,JavaScript是必须的语言,而你也不用考虑应用采用的是何种后端技术。
需要快速开发原型
如果你是设计师,想学习后端编程技术以测试应用,那Ruby和Python将是不错的选择。这两门语言已入选2013年最流行工作技巧Top 5。
学习Python,可以利用Learn Python The Hard Way网站上的资源,学习Ruby,可以登陆Codecademy中的Ruby子栏目。
想构建一个Android应用
开发Android应用,最多使用Java语言。
你可以在Windows和Mac上开发Android应用,之后购买廉价的设备来测试你的应用。随着Andriod正逐渐占领移动市场,越来越多的开发者正选择从Android开始入手。
Udacity上免费的JavaScript编程课程很适合初学者。一旦你掌握到Java,就可以登录官方Android开发者网站,学习如何创建第一个Android项目。
想开发一款iOS应用
在Mac上,你可以使用ObjecTIve-C开发可运行于iPhone、iPad、iPod上的iOS应用。与Android相比,iOS的碎片化程序更低,开发者很容易创建通用的应用。
除了Object-C,开发iOS应用还需要免费工具Xcode和iOS软件开发工具包。你可以用Apple提供的开发者教程,或登录到Code School网站中的iOS子频道学习iOS开发
三、 手机app编程
随着智能手机的普及,各种手机APP也不断推出,从餐饮到支付再到娱乐,给我们的生活带来了很大的便利和乐趣。
那么问题来了,一款手机APP是如何开发出来的呢?
首先,开发APP的第一步就是需求整理,这时我们需要把APP的主要功能、所属行业、用户群体、用户需求痛点整理出来,刚开始这些想法可能会非常混乱,所以咱们就需要通过思维导图用图文结合的方式把这些想法整理出来。如果你有产品经理这方面的经验,那就再好不过了,但是对于普通人来说,最好还是寻求专业人士的帮助。
接着就是预算评估了。开发一个APP的成本是不固定的,它会根据APP的精细程度,功能需求,是否需要购买服务器等因素来判断,所以你在开发APP前要考虑清楚自己的APP究竟有多少人使用、自己的公司和产品究竟需要多少功能。然后还要看公司现金流是否充足,再来判断自己有多少预算花在APP的开发上。
第三步就是软件原型设计。在这一步我们需要规划一下这个APP的大致页面是怎么样的,例如图标位置分布,主要功能是怎样的,点击后会触发什么动画?一共有几级菜单?各个菜单之间的交互逻辑是什么。这一切都要用Axure或者墨刀做成原型图,方便后续的开发设计。这一步对专业性的要求也比较大,所以最好也要寻找专业人士的帮助。
第四步就到了APP的UI设计。在确定好原型图后,设计师会根据原型图进行上色,布局的调整,交互逻辑的优化、再根据不同的手机系统和不同的屏幕进行适配。
然后就到了最重要的环节——开发。程序员会根据功能需求撰写代码。一个完整的APP大致分为三个部分,分别为服务器端、APP端、web管理端,程序员要不断对APP进行优化,包括软件的流畅度、服务器的网络调度和优化,给用户最好的体验。最后再进行测试,没问题了就可以投入使用了。后期还会对软件进行版本迭代和维护。
目前主流的手机APP分两类,一类是基于苹果(IOS)系统的APP;另一类是基于安卓(Android)系统的APP,两种不同系统的APP所使用的开发工具及编程语言完全不一样。
1)、基于苹果(IOS)系统的APP
要开发苹果系统的APP,需使用苹果公司的xcode开发工具,通常是使用Objective-C或Swift语言开发,Objective-C是C语言衍生出来的,继承了C语言的特性,属于面向对象的语言。会C语言的话可以直接使用Objective-C编程,差异很小,若遇到不懂的再查资料。还有就是苹果新推出的Swift语言,非常好用。
2)、基于安卓(Android)系统的APP
安卓系统APP使用Java语言进行开发,Java语言已经流行了20几年,目前还保持这这种势头,经久不衰。如果想做安卓系统APP必须先掌握Java语言,对于有C语言基础的人来说,学习Java还是较容易的。
安卓系统APP开发的工具有几种,目前比较主流的有Eclipse和android studio,之前比较流行的是Eclipse,后来2013年谷歌推出了android studio开发工具,也比较好用。