一、引
我一直不明白“文人相轻”是什么意思,也许就是说:文人清客之间互相瞧不起的事情吧。但对于我来说,文人相轻就是表示:无知者无畏。
无论你的某一方面的语言学的怎么样,怎么样的牛逼,你可以眼光狭窄,你可以只看到你专注的领域,但是你不可以心胸狭窄;眼光狭窄的你
可以专注某一个领域,你一样可以成为大家;但是如果你心胸狭窄的话,就算成为大家,也不会是一个令人钦佩的大家。
我是一个学自动化的,对于计算机科学有着独特的爱好,或者说是对可以自己创造东西有着特殊的爱好,因为学计算机编程可以不需要很多的
硬件设施就可以看到自己创造的东西;而从事自动化,虽然也编程,但是如果没有一些特殊的硬件,编写的程序基本也就没有任何用处,基本上
没有人会在自己家里装一个PLC什么的来实现自动控制, 当然如果你认为需要,你也可以自己这么搞;但是计算机就不一样,现在很多的家庭都有
自己的计算机,尤其是手机更是普及的一塌糊涂。
我一直在各大论坛潜水,比方说Chinaunix、CSDN、51CTO、Itlab之类的,经常可以看到linux和win阵营的人互相开骂,还有就是各种语言之
争,经常可以看到C语言的使用者诟病C++,同样也可以看到C++的使用者诟病C,各种Javaer和C#er们互相开骂,反正就是很多这样类似的事情。
感觉真是无聊。
很多时候,很多人都瞧不起VB的使用者,但是VB的应用场合真的是很广,我就从自动化的角度出发来说吧:
1、工业控制监控画面
在西门子WinCC中有VBS脚本(还有今天要说的另一个脚本C脚本),WinCCFlexible中有VBS脚本, 在Intouch中有类似的C脚本,在Rockwell的
HMI画面有VB脚本,同样在霍尼韦尔的HMI中有类似的脚本;并且应用广泛;
2、调试变频器可以使用脚本, 这个比较复杂,需要对变频器的运行参数非常了解,才能用脚本。DriverMonitor和DriverWindow都有自己的脚本,其他
的大体也有。
3、在数控中也可以使用VB脚本来控制系统,目前西门子大部分的数控系统使用的是Win体系的操作系统;也有用Linux的,不过不多,而且界面和操作习惯
已经改的和Win基本一样了。
我只能说:文人相轻就是无知者无畏。你可以有不同的性见,但是你不能强制别人接受你的性见;也许可以看看这本书《持不同性见者》,我还记得里面的
一句话: 玫瑰除了不是玫瑰,玫瑰可以是任何东西。这句话是说女人的,这本书也是写女人的,里面有很多的有意思的词语,比方说:女人的身体造反。
二、题
1、工控领域的C应用
很多IT人士,可能认为C语言只能在计算机、单片机之类的开发中应用,殊不知在工业控制领域C语言的开发也非常有潜力,在西门子的开发中C语言实在是
一个非常强有力的开发工具,比其他任何语言都具有优势, 汇编快但是太复杂,C++勉强可以用,但是速度实在是慢,VB应用虽然广泛,但是基本没有也行,而
在一些控制运行时间在us(微秒)级的应用时,C似乎是唯一的选择。
在Step 7中有单独的C语言开发包,可以使用。 在热轧、冷轧的一些开发过程中(比较高端的应用是TDC,稍微低一点的是S7400加工艺板开发),很多人用
C和STL(汇编级别)做过实验(非大神级的人员,但是都是领域中的高手,对于大神来说语言不是问题), 用C开发的程序运行比STL运行更快,而且容易理解。虽然
实际开发应用中的TDC程序用CFC/SFC;S7程序用LAD/STL/FBD;但是很多精密和高速的控制用C开发成可以在CFC/SFC或者LAD/STL/FBD中可以使用的FC/FB
,然后再被调用; 这里当然可以用SCL,SCL的速度比LAD/STL/FBD快(SCL比STL快是因为编译过程会优化逻辑,通常人的逻辑有时候会有一些琐碎的无用的操作
C语言比STL快的原因大体也是这个)而实际上CFC/SFC是通过SCL编译的(这里要插一句,SCL是一个类PASCAL的编译器,使用的语言结构也是类Pascal的)。
在WinCC中可以用C开发脚本,用C开发的脚本比VBS的快,给大家看看图:
上面就是一个典型的WinCC下C动作。接下来看一段C代码:
大家有没有感觉这写个很熟悉啊
2、Matlab中的C开发
很多人也许听说过matlab,或者使用过Matlab;但是我估计大部分人都不知道matlab其实还可以作为一个软件开发工具来使用,可以开发图形界面程序,
从本质来讲Matlab是一个C语言的编译器。
实际上在很多工业开发过程中,很多时候都可以用Matlab来仿真系统,比方说要模拟热轧、冷轧辊的应力分析,通常是没有这个硬件设施来让人模拟的,这
个时候就可以做一个高阶的数学模型进行模拟,从而产生想要的数据和图形。
下面上张图给大家看看:
注意上图最后一句: integrate with C C++ fortran com and java; 集成C、C++、Fortran、com和Java。
其实在matlab中还有很多功能,比方说什么ls、dir、mkdir等一系列系统管理类的命令可以执行。
三、结语
当青蛙跳出井的时候,才会发现天地原来这么广阔。