|
我并非專業(yè)出身,學(xué)電氣才1年,后由于興趣和形勢(shì)逼迫才啃PLC,到現(xiàn)在總共才三年,雖然底子薄點(diǎn),但一個(gè)月有三四個(gè)工程的工作量,實(shí)踐機(jī)會(huì)很多. 在這里我不敢談經(jīng)驗(yàn), 只是就我個(gè)人在這段時(shí)間走的彎路與大家分享.新人以為鑒:
3 b& w: \: N$ M1 Y
& q# ^/ A' r- T9 M9 |' m6 I) p1 G: Q! X) Q" y9 `3 _- L3 {, V
1 接到工程的開始不要忙于設(shè)計(jì)圖紙,應(yīng)該多和機(jī)械設(shè)計(jì)人員多交流,還有設(shè)備調(diào)試人員,拿到設(shè)備運(yùn)行的第一手資料,記住,你要最了解設(shè)備,包括生產(chǎn)出產(chǎn)品的工藝.
( Q% z' H$ q2 @# z4 b) w5 b
0 t# f9 |# B3 p- P5 H# X, }) |( y7 L5 v
2 繪制流程圖,這個(gè)圖紙只為自己使用,所以不用太規(guī)范,圖中應(yīng)包括設(shè)備的運(yùn)行過程,標(biāo)注注意事項(xiàng),對(duì)設(shè)備應(yīng)有總體規(guī)劃.
- ^6 A0 S; Z* P1 _2 J9 W) ~, M3 q0 C( L" M) r$ V5 M. B
6 O- _$ X: @5 O$ e2 S F3 用IO表格定義輸入輸出.
) w! t% Q3 _& v' N0 w3 ?) V+ I6 d0 |2 C& L
$ f" x3 ^/ |( `5 z3 U0 X輸出:a.同一電壓等級(jí)的盡量靠近 b.不同頻率的應(yīng)單獨(dú)劃分.以上兩點(diǎn)便于配盤和現(xiàn)場(chǎng)抗干擾的方便. c.程序上順承關(guān)系的輸出應(yīng)盡量靠近以方便編程 d.留出10%的空點(diǎn)做備用(我是做非標(biāo)產(chǎn)品的,臨時(shí)該設(shè)備是常事,定型產(chǎn)品則不用)( s& q6 E& ]1 ` B) h4 t3 @/ n
' n$ u8 G! V) f$ S& ^3 {$ o
輸入:a.根據(jù)設(shè)備程序工藝分配觸摸屏輸入和控制板輸入,控制板輸入點(diǎn)定義時(shí)應(yīng)注意預(yù)留一個(gè)備用按鈕.1 X) c' ?( x$ d: N
7 k* M% ]/ U1 i. c! u編制變量表:變量表的編制應(yīng)合理規(guī)劃:最失敗的程序往往用到一個(gè)變量就隨便用.對(duì)于與外設(shè)有關(guān)聯(lián)的變量應(yīng)保持連續(xù)并把只讀,只寫,讀寫型的合理分開,同一類型的變量靠近.這樣有利于通訊的速度和程序的閱讀.
) Z7 B/ x% u3 C7 t/ E" @# [. b ]7 a D6 `! u& z1 K
0 s. x$ f# n& M- h- m3 {1 @
4 出圖:這個(gè)比較煩瑣.除了電氣圖,還應(yīng)有安裝圖.一定要規(guī)范配盤.不然將來等你拿到控制盤時(shí)發(fā)現(xiàn)要改的太多.基礎(chǔ)圖,將基礎(chǔ)圖中附加電氣要求(其實(shí)主要是接地要求)' j: M0 I9 _( h- z) o- Y
" d& W. t0 F0 i J! b. \" v
( T H$ \. G* A7 s5 編程:我建議主程序不要寫控制,而只有子程序的調(diào)用.子程序應(yīng)分類,初始化\手動(dòng)\單循環(huán)\自動(dòng)多循環(huán)\全局中間控制的\運(yùn)算的\報(bào)警的\復(fù)位程序,注意控制類程序轉(zhuǎn)換時(shí)的復(fù)位.盡量的簡(jiǎn)化.
9 c" j1 b/ i# b5 M! @% m& _' b9 n, S% t' Z
& S, t% d- i% i) M
: h# y2 W- z* ] l+ v4 V就編程而言,其實(shí)是整個(gè)系統(tǒng)的實(shí)現(xiàn)部分,。
& c& y* [$ t" T% U( S- E0 G( q0 z! @: a% {1 ]
$ R4 ?$ H+ G9 Y5 d' J3 ^; c到此時(shí),,工程已經(jīng)完成70%了,,所以程序只占系統(tǒng)的20%(其余10%是編制使用說明書,、驗(yàn)收材料等用戶文件),但也是最費(fèi)我們氧氣的環(huán)節(jié),,說到缺氧說點(diǎn)題外的,,最近我正在編一臺(tái)設(shè)備其中包括4模入、1模出,、變頻,、3個(gè)HSC,定完程序框架一看,,共用了10個(gè)子程序,、11個(gè)中斷,呵呵,�,;貋碚f程序,,我發(fā)現(xiàn)本論壇大多提到的是指令的應(yīng)用,其實(shí)程序的定義很廣,,不是語(yǔ)句嚴(yán)謹(jǐn)就是好程序,,還要結(jié)構(gòu)合理、系統(tǒng)化,、易移植性,、易擴(kuò)展性、安全性及冗余等等,。
9 f% L7 w+ N4 M2 h- q5 I" J
1 w$ [8 k4 w i1 N3 Q; l
+ d( X3 n' Z& T+ a. U8 v1,、 程序結(jié)構(gòu)很重要,便于別人閱讀,,把程序開發(fā)人員的思路清楚的展現(xiàn)給他人,,編程中避免數(shù)據(jù)的交叉、語(yǔ)句的跳轉(zhuǎn),,此處并不是說JUMP語(yǔ)句,,而是順序分布,不要編程序網(wǎng),,很多人(包括自己)會(huì)被網(wǎng)套住,,要編成程序鏈,讓別人讀程序時(shí)有如扶著鋼鎖過橋的感覺,。這也是我為什么喜歡用T型圖而不喜歡用語(yǔ)句,,實(shí)踐證明用語(yǔ)句比T型圖出邏輯錯(cuò)誤的幾率高。
9 r- C6 K4 x" ~1 K ], H- [6 ]# w# j- {% z- [4 r& p% s5 N
' M6 a9 l: f7 h( F+ d& S
0 r* F b+ c' H$ `% l2,、 程序的系統(tǒng)化,,把程序按功能劃分,即“塊”的理念,,把一臺(tái)復(fù)雜的設(shè)備分成若干個(gè)塊,,每個(gè)塊獨(dú)立實(shí)現(xiàn)其功能,孫子說過,,敵人強(qiáng)大,,我設(shè)法把他分散開,再逐一擊破,。我從來不在主程序里寫指令,,全是調(diào)用,程序的樹型結(jié)構(gòu)在很多年前就被人認(rèn)可,,樹干有若干分枝,,枝上再分杈,如果你看見主樹干上長(zhǎng)滿樹葉和果實(shí)會(huì)不會(huì)覺得心堵,?
" p* C* z% S m+ j
! A' @* G2 D. ~/ U0 S9 ?: F
- K% @" g2 {" c7 i3 V7 {' Z! q( D, X
8 f+ q4 n5 [! g) J: O8 r) H3,、 移植和擴(kuò)展,,如果你搞過PC編程,這兩個(gè)詞肯定不生,,移植是為了其它相同功能程序的調(diào)用,,建議大家多做點(diǎn)庫(kù),擴(kuò)展性是為了設(shè)備有可能發(fā)生的二次改造或與其它設(shè)備的合作(并非通訊)而預(yù)先考慮的預(yù)留,,當(dāng)然擴(kuò)展性更適合我們這些做非標(biāo)產(chǎn)品的,,手指有點(diǎn)麻了。
! H$ o( x# `- d: A/ u
$ d4 o1 ~6 a0 Y# W" `2 Z8 ^7 ^& R, R; w. O' w$ V% \ Z
% s% G' p, ?* V
4,、 安全性和冗余應(yīng)該放在一起說,,安全性即穩(wěn)定性,好的系統(tǒng)不僅僅是處理復(fù)雜的運(yùn)行和運(yùn)算,,首要是安全穩(wěn)定,,能處理突發(fā)事故,和避免事故擴(kuò)大,,這里我說說“千萬不要用STOP指令”,,停機(jī)后,你連事故都處理不了了,,再上電可能就會(huì)擴(kuò)大事故,。當(dāng)然小設(shè)備除外,我知道STOP的唯一用途就是,,別人不給你設(shè)備款,,就在他用了一段時(shí)間后STOP他的設(shè)備,呵呵,。冗余,,好象300或400有,我沒用過,,我這里說的冗余是指軟件冗余程序,,并不是硬件的,在不影響系統(tǒng)性能的情況下,,系統(tǒng)中的冗余程序應(yīng)占總程序的50%~75%左右,,當(dāng)然這也和系統(tǒng)的復(fù)雜程度有關(guān),,我個(gè)人認(rèn)為冗余程序的定義是:在非正常工作情況下運(yùn)行,,旨在發(fā)現(xiàn)處理故障及其它非正常狀況或數(shù)據(jù)的程序。沒有冗余就談不到完整,。* F' N, B/ x' s
& z# S: C" D2 X f7 q1 y0 A' }/ R9 }- Y1 j1 p$ T
再深白話就是系統(tǒng)的自檢測(cè),、自診斷、容錯(cuò)性和擬人模仿性了,,下回和大家白話,。! l8 C7 ?8 y u q) S; H J
5 e1 g# a1 x3 U
& v3 g. w( q' z# H總之,,如果你把面前的一堆廢鐵變成一個(gè)機(jī)器人,賦予他眼耳鼻舌口手及思想和靈魂,,你會(huì)發(fā)現(xiàn)你就是造物主,,生命在你指尖誕生。
( L1 v6 W6 K. p& ? |
|