一、引
我一直不明白“文人相輕”是什麼意思,也許就是說:文人清客之間互相瞧不起的事情吧。但對於我來說,文人相輕就是表示:無知者無畏。
無論你的某一方面的語言學的怎麼樣,怎麼樣的牛逼,你可以眼光狹窄,你可以只看到你專註的領域,但是你不可以心胸狹窄;眼光狹窄的你
可以專註某一個領域,你一樣可以成為大家;但是如果你心胸狹窄的話,就算成為大家,也不會是一個令人欽佩的大家。
我是一個學自動化的,對於電腦科學有著獨特的愛好,或者說是對可以自己創造東西有著特殊的愛好,因為學電腦編程可以不需要很多的
硬體設施就可以看到自己創造的東西;而從事自動化,雖然也編程,但是如果沒有一些特殊的硬體,編寫的程式基本也就沒有任何用處,基本上
沒有人會在自己家裡裝一個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等一系列系統管理類的命令可以執行。
三、結語
當青蛙跳出井的時候,才會發現天地原來這麼廣闊。