Delphi真的没落了吗?_说Delphi母语Pascal的另一个应用
我最近才接触Delphi语言, 而且从目前所有就业招聘的情况来看,Delphi的前景看起来有点不如某些开发工具光鲜,尤其在Borland公司被甲骨文Oracle收购后,好像Delphi注定要被世人遗忘一样, 同时在各大论坛、BBS上人们对Delphi的看法就有太多的成见,一般人都看不起Delphi和VB这样简单的语言,或者说对程序员来说缺少学习难度的语言或者开发工具。
不过好像这些都是——真正的程序员——们的看法,而不是所有人的看法,大多数的程序员其实不知道其实对于Delphi的母语——Pascal——还有一个非常特别的应用:那就是作为国际上通用的PLC编程语言存在。
在自动化控制领域, 有几种用的比较多的语言,最常用的就是LAD、STL和FBD。除了这些常用的语言之外还有一个比较常用的语言:那就是SCL。SCL语言是什么语言呢? 就是结构化文本编程。
SCL语言对于一些复杂的运算,尤其是数学运算其编程的复杂程度较LAD、STL和FBD都要简单。下面我们来看看自动化界使用的Pascal语言应用,我们以西门子PLC为例子来做一个简单的比较,做一个简单的电机正反转的控制语言的实现。
首先看看一个定义的函数块:FC
STL语言:
第一步定义数据接口
IN数据接口:
Estop BOOL // 急停 I0.0
Power BOOL // 控制电源 I0.1
StartDir BOOL // 正向启动 I0.2
StartRev BOOL // 反向启动 I0.2
Stop BOOL //停止 I0.3
Test BOOL //试灯 I0.4
OUT接口区:
RunDIr BOOL //正向启动 Q0.0
RunRev BOOL // 反向启动 Q0.1
RunningLamp BOOL // 运行指示灯 Q0.2
第二步程序的实现:
Net1: 正转控制
A Estop
A Power
AN StartRev
A
A(
O StartDir
O RunDir
)
= RunDoir
Net2: 反转控制
A Estop
A Power
AN StartDir
A Stop
A(
O StartRev
O RunRev
)
= RunRev
Net3: 指示灯
O RunDir
O RunRev
O Test
= RunningLamp
上面程序段是自动化人员可能会用到的一种较常用的实现;下面我们看看Pascal是怎么实现的。
FUNCTION "MotorStart"
title
version
VAR_INPUT
Estop:BOOL;
Power:BOOL;
StartDir:BOOL;
StartRev:BOOLl;
Stop:BOOL;
Test:BOOL;
END_VAR
VAR_OUTPUT
RunDir:BOOL;
RunRev:BOOL;
RunLamp:BOOL;
END_VAR
VAR_TEMP
DirTemp:BOOL;
RevTemp:BOOL;
END_TEMP
Begin:
// 正转
IF Estop=TRUE AND Power= TRUE AND Stop=TRUE AND StartDir=TRUE THEN
DirTemp:=TRUE;
ElSE
DirTemp:=FALSE;
END_IF
IF DirTemp=TRUE AND StartRev=FALSE THEN
RunDir:=TRUE;
END_IF;
//反转
IF Estop=TRUE AND Power=TRUE AND Stop=TRUE AND StartRev=TRUE THEN
RevTemp:=TRUE;
ElSE
RevTemp:=TRUE;
END_IF
IF RevTemp AND StartDir=FALSE THEN
RunRev:=TRUE;
END_IF;
//指示灯
IF RunDir=TRUE OR RunRev=TRUE OR Test=TRUE THEN
RunningLamp:=TRUE ;
END_IF
END_FUNCTION
上面的SCL程序段好像并没有比STL语言简洁或者容易多少,反而看起来很复杂, 当然如果做逻辑运算SCL实际上并不比其他语言简单。但是如果循环和所数学运算,用SCL就会简单多了。
这里不多说了,以后有机会再讨论其他的应用。
只想表达一个观点,其实Delphi的应用如果编写Windows的应用程序,应该不比Microsoft出品的Visual Studio中的C/C++组件差多少,如果说有一定的差距,那就是目前没有人用Pascal写过操作系统, 而目前主流的操作系统都是用C语言实现的,可能在这一点上人们会认为Pascal语言不如C语言,学C的人就是牛人,而学Pascal的人就不怎么样, 怎么说呢, 程序员写代码,我指写代码,用什么都没有两样,关键是看应用, 不同的应用选择一个合适的开发工具才是最重要的。
一孔之见,欢迎弯腰低头找板砖........................
转载于:https://www.cnblogs.com/volcanol/archive/2011/06/03/2070252.html
Delphi真的没落了吗?_说Delphi母语Pascal的另一个应用相关推荐
- delphi 获取打印机默认纸张_在DELPHI中实现打印的预览
在DELPHI中实现打印的预览 PCPOP.COM 2005年10月18日 类型:转载 作者:<电脑报> 编辑:王琛 ----------------------------------- ...
- delphi 安卓图片保存数据库_在Delphi实现在数据库中存取图像的图文演示无错
本实例演示如何在数据库中存取图像文件. 向窗体上添加一个TListBox组件.一个TImage组件和一个TTable组件,设计完成的主界面如图1所示. 图1 主界面 本系统中需要设计一个新的基于Par ...
- delphi真的穷途末路了! 不变程序员的苦难和热爱的精神。
建立一个自动编号字段,系统并没有建立一个序列,先填写一条,再删掉就行了. http://hi.baidu.com/itgorgon/item/bec2a816c58954fd756a84cd http ...
- delphi还有人用吗?delphi过时了吗?为什么还有人使用Delphi开发软件?一文说清Delphi的领先一个时代的开发工具DNA
我正在和一个不太熟悉Delphi的人聊天.他问Delphi到底是什么使很多人继续喜欢它?delphi还有人用吗?delphi过时了吗?为什么还有人使用Delphi开发软件?我以为我会分享我的答案,看看 ...
- 在delphi中嵌入腳本語言--(譯)RemObjects Pascal Script使用說明(1)(譯)
在delphi中嵌入腳本語言--(譯)RemObjects Pascal Script使用說明(1)(譯) http://blog.csdn.net/truexf/article/details/15 ...
- 结合Delphi和Python的优势:使用Delphi VCL组件快速构建超现代的Python本机Windows GUI桌面酷炫用户界面应用
Delphi开发Pyhron GUI 有时您的应用程序需要一个用户界面,但是为Python应用程序制作用户界面最好的方法是什么?输入用于Python的DelphiVCL.VCL是成熟的Windows本 ...
- 在MATLAB 中st_1是变量名,在Delphi中,根据变量标识符命名规则,st80不能用一个变量命名。...
在Delphi中,根据变量标识符命名规则,"st80"不能用一个变量命名. 更多相关问题 [单选,A型题] 胸痹表现为"心中痞,留气结在胸,胸满,胁下逆抢心", ...
- PHP真的没落了吗??
PHP真的没落了吗?? 适合的才是最好的,永远相信这句话! 我开发做了五年多了,现在是前端也在写,后端也在写.唉~~~我真的是苦命的孩子!!这让我想起了周星驰电影说的一句贱贱的话:"要么卷死 ...
- Python什么是闭包、闭包特征、定义闭包传入一个数求和并输出,定义一个装饰器:打印函数运行花费的时间,定义一个类:要求:包含一个对象属性,且用_(单下划线)命名的定义一个类方法(装饰器)
1. 闭包.闭包特征及应用 1.1 什么是闭包? 闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数; 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包 ...
最新文章
- Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details
- HbuilderX中的git的使用 git HbuilderXgit HbuilderX 使用git
- 用户自定义的标识符的一些注意事项
- 强化学习之原理详解、算法流程及Python代码
- 屏幕编程 F4的帮组用法
- 跨域资源共享CORS详解
- 《零基础看得懂的C语言入门教程 》——(五)C语言的变量、常量及运算
- 《计算机应用基础》期末试卷.,《计算机应用基础》期末试卷(A卷)《计算机应用基础》期末试卷(A卷).doc...
- 反思,今天总体感觉事情很简单,但项目比较多,没有掌握住很好的技巧,所以感觉很混乱
- python eureka服务发现_Spring Cloud版——电影售票系统—Eureka微服务注册与发现
- js实现excel块拖拉数据_Excel操作比Python更方便?常见数据操作Excel实现和Python实现的比较...
- ps html css 工具,认识Photoshop(PS)CSS切图必用工具
- threallocal详解
- 图片相似度识别在线_图片相似度计算的几种方法
- 项目部署到自己的IIS上
- iOS弹幕库OCBarrage-如何hold住每秒5000条巨量弹幕
- Sybase数据库按条件导出数据文件
- 初学者入门——NOI题库1.3
- JS中常见的兼容写法
- 私域流量客服社群运营员工工作绩效表格方案计划手册指南宝典