版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、上位機程序編寫單鍵雙功能數(shù)碼管(偽)兩位及以上整數(shù)賦值算法時間流控制1.單鍵雙功能按鈕的特點,很簡單:按下之后必定彈起。要求:給主持人設置一個控制開關,用來控制系統(tǒng)的清零和搶答的開始。所以,若想實現(xiàn)這個功能,就需要用彈起時的操作控制按下時的條件;同樣地,按下時的操作也要控制彈起時的條件。定義兩個離散型變量:變量1,變量2。按下時:IF(變量1=0)THEN變量2=1;功能1;ENDIFIF(變量1=1)THEN變量2=0;功能2;ENDIF彈起時:IF(變量2=1)THEN變量1=1;ENDIFIF(變量2=0)THEN變量2=0;ENDIF2.七段數(shù)碼顯示(偽LED數(shù)碼管)因為PLC輸出端不
2、夠用,所以計時顯示功能由上位機編程實現(xiàn)。首先把這七個長條畫出來。再定義變量,每有一位數(shù)字顯示就至少要定義8個變量(包括一個整型和7個離散型)。AFBGECD設定每一段的變量和閾值(只需定義0和1)及其對應的顏色。在數(shù)據(jù)改變程序中,以剛才定義的整型量(該位的數(shù)值)為條件,編寫從0到9的所有判斷程序。以4為例:IF(該位數(shù)值=4)THEN該位數(shù)值A=0;該位數(shù)值B=1;該位數(shù)值C=1;該位數(shù)值D=0;該位數(shù)值E=0;該位數(shù)值F=1;該位數(shù)值G=1;ENDIFFBGC3.二位以上整數(shù)賦值算法在使用自定義的數(shù)碼管時,如果僅僅涉及個位,那么只需在數(shù)據(jù)改變程序中編寫從0到9共10個判斷語句,再多幾位又如何
3、?那就是一百條、一千條、一萬條我們沒有那個時間和精力去編寫和校對,而且造成存儲空間浪費。所以需要一個存儲總值的整型量去給各個位的數(shù)碼管賦值,當然也是在數(shù)據(jù)改變程序中編寫。需要注意的是,在使用取整運算時,INT函數(shù)的功能是四舍五入運算,然而我們往往又不想去數(shù)據(jù)存儲區(qū)折騰二進制數(shù),所以此處應該分類討論。這里以二位數(shù)為例:IF(總值-10*INT(總值/10)=0 )THEN十位=INT(總值/10);個位=總值-10*INT(總值/10);ENDIF就像這樣,以后每多一位加兩個判斷語句就可以了。4.時間流控制首先我們要明白一點,在天工組態(tài)的運行周期中,一秒等于一百毫秒。極限運行周期是55ms,其實
4、就是半秒多。所以為了計時方便,將運行周期設定為100ms,也就是一秒。這樣在畫面程序或主程序中需要嚴格定時的情況下,一秒是最好用的。這就意味著每過一秒,你就可以讓一個事件發(fā)生。例如:倒計時功能。先定義一個離散量作為判斷標志,再定義一個整型量作為計數(shù)運行時(周期1s):IF(計時標志=1)THEN計時計數(shù)=計時計數(shù)-1;ENDIFIF(計時計數(shù)=0)THEN計時標志=0;ENDIF這樣就可以通過觸發(fā)程序改變計時標志從而開始計時,每秒減一,這個值如果作為數(shù)碼顯示值的總值就可以用剛才的方法顯示了,但是一定要記得給計時計數(shù)重置。一切需要時間經(jīng)過而觸發(fā)的事件都是可以通過這個程序來實現(xiàn)的,還可以在主流時間
5、中分出時間支流。IF(計時計數(shù)=某時刻)THEN事件標志=1;ENDIF5.小結8路搶答器這個題目看似簡單,實際上對PLC梯形圖的編寫要求較高,給我們負責開發(fā)下位機的同學帶來了不小的麻煩。但是在組態(tài)軟件開發(fā)這里,還是容易上手的。感謝劉老師給了我們這次創(chuàng)新實踐的機會,學分是次要的,次要的,次要的。上位機程序編寫張程偉1.單鍵雙功能按鈕的特點,很簡單:按下之后必定彈起。要求:給主持人設置一個控制開關,用來控制系統(tǒng)的清零和搶答的開始。所以,若想實現(xiàn)這個功能,就需要用彈起時的操作控制按下時的條件;同樣地,按下時的操作也要控制彈起時的條件。定義兩個離散型變量:變量1,變量2。按下時:IF(變量1=0)T
6、HEN變量2=1;功能1;ELSE變量2=0;功能2;ENDIF彈起時:IF(變量2=1)THEN變量1=1;ELSE變量2=0;ENDIF2.七段數(shù)碼顯示(偽LED數(shù)碼管)因為PLC輸出端不夠用,所以計時顯示功能由上位機編程實現(xiàn)。首先把這七個長條畫出來。再定義變量,每有一位數(shù)字顯示就至少要定義8個變量(包括一個整型和7個離散型)。AFBGECD設定每一段的變量和閾值(只需定義0和1)及其對應的顏色。在數(shù)據(jù)改變程序中,以剛才定義的整型量(該位的數(shù)值)為條件,編寫從0到9的所有判斷程序。以4為例:IF(該位數(shù)值=4)THEN該位數(shù)值A=0;該位數(shù)值B=1;該位數(shù)值C=1;該位數(shù)值D=0;該位數(shù)值
7、E=0;該位數(shù)值F=1;該位數(shù)值G=1;ENDIFFBGC3.二位以上整數(shù)賦值算法在使用自定義的數(shù)碼管時,如果僅僅涉及個位,那么只需在數(shù)據(jù)改變程序中編寫從0到9共10個判斷語句,再多幾位又如何?那就是一百條、一千條、一萬條我們沒有那個時間和精力去編寫和校對,而且造成存儲空間浪費。所以需要一個存儲總值的整型量去給各個位的數(shù)碼管賦值,當然也是在數(shù)據(jù)改變程序中編寫。需要注意的是,在使用取整運算時,INT函數(shù)的功能是四舍五入運算,然而我們往往又不想去數(shù)據(jù)存儲區(qū)折騰二進制數(shù),所以此處應該分類討論。這里以二位數(shù)為例:IF(總值-10*INT(總值/10)0)THEN十位=INT(總值/10)-1;個位=總
8、值+10-10*INT(總值/10);ELSE十位=INT(總值/10);個位=總值-10*INT(總值/10);ENDIF就像這樣,以后每多一位加一個判斷語句就可以了。4.時間流控制我們發(fā)現(xiàn),在天工組態(tài)的運行周期中,低于一秒的設置都被視為一秒。在畫面程序或主程序中需要嚴格定時的情況下,一秒還算是比較好使。這就意味著每過一秒,你就可以讓一個事件發(fā)生。例如:倒計時功能。先定義一個離散量作為判斷標志,再定義一個整型量作為計數(shù)運行時(周期1s):IF(計時標志=1)THEN計時計數(shù)=計時計數(shù)-1;ENDIFIF(計時計數(shù)=0)THEN計時標志=0;ENDIF這樣就可以通過觸發(fā)程序改變計時標志從而開始
9、計時,每秒減一,這個值如果作為數(shù)碼顯示值的總值就可以用剛才的方法顯示了,但是一定要記得給計時計數(shù)重置。一切需要時間經(jīng)過而觸發(fā)的事件都是可以通過這個程序來實現(xiàn)的,還可以在主流時間中分出時間支流。IF(計時計數(shù)=某時刻)THEN事件標志=1;ENDIF5.畫面程序編寫簡單的畫面程序是容易實現(xiàn)的,如位置移動和旋轉(zhuǎn)等,我們只需要定義相關變量并將其作為程序觸發(fā)條件就可以了。在具體設置中可以調(diào)整變量與實際效果之間的線性相關度,將一個表達式作為觸發(fā)條件也是可以的。這里要說明一下有關坐標的問題,坐標的原點是在畫面最左上角一點。在需要旋轉(zhuǎn)的情況,要注意圖形中心與旋轉(zhuǎn)中心的水平、垂直距離的計算是后者減前者。但是有
10、時也想做出一些大動作,比如說沿著斜線走,或是兩個連接著的圖形各自旋轉(zhuǎn)。就像這樣:這時就需要使用三角函數(shù)對位置增量賦值了。例如在數(shù)據(jù)改變程序中,以角位置為條件:IF(角位置=-1)THEN角位置=99;ENDIFIF(角位置=100)THEN角位置=0;ENDIF觸發(fā)程序:水平位置=水平位置位移*cos(2*角位置/100);垂直位置=垂直位置位移*sin(2*角位置/100);很明顯角位置這個變量定義于-1到100之間,這個程序是為了使圖形能連續(xù)轉(zhuǎn)動。小結8路搶答器這個題目看似簡單,實際上對PLC梯形圖的編寫要求較高,給我們負責開發(fā)下位機的同學帶來了不小的麻煩。但是在組態(tài)軟件開發(fā)這里,還是容易
11、上手的。感謝劉老師給了我們這次創(chuàng)新實踐的機會,學分是次要的,次要的,次要的。上位機程序編寫張程偉1.單鍵雙功能按鈕的特點,很簡單:按下之后必定彈起。要求:給主持人設置一個控制開關,用來控制系統(tǒng)的清零和搶答的開始。所以,若想實現(xiàn)這個功能,就需要用彈起時的操作控制按下時的條件;同樣地,按下時的操作也要控制彈起時的條件。定義兩個離散型變量:變量1,變量2。按下時:IF(變量1=0)THEN變量2=1;功能1;ELSE變量2=0;功能2;ENDIF彈起時:IF(變量2=1)THEN變量1=1;ELSE變量2=0;ENDIF2.七段數(shù)碼顯示(偽LED數(shù)碼管)因為PLC輸出端不夠用,所以計時顯示功能由上位
12、機編程實現(xiàn)。首先把這七個長條畫出來。再定義變量,每有一位數(shù)字顯示就至少要定義8個變量(包括一個整型和7個離散型)。AFBGECD設定每一段的變量和閾值(只需定義0和1)及其對應的顏色。在數(shù)據(jù)改變程序中,以剛才定義的整型量(該位的數(shù)值)為條件,編寫從0到9的所有判斷程序。以4為例:IF(該位數(shù)值=4)THEN該位數(shù)值A=0;該位數(shù)值B=1;該位數(shù)值C=1;該位數(shù)值D=0;該位數(shù)值E=0;該位數(shù)值F=1;該位數(shù)值G=1;ENDIFFBGC3.二位以上整數(shù)賦值算法在使用自定義的數(shù)碼管時,如果僅僅涉及個位,那么只需在數(shù)據(jù)改變程序中編寫從0到9共10個判斷語句,再多幾位又如何?那就是一百條、一千條、一萬
13、條我們沒有那個時間和精力去編寫和校對,而且造成存儲空間浪費。所以需要一個存儲總值的整型量去給各個位的數(shù)碼管賦值,當然也是在數(shù)據(jù)改變程序中編寫。需要注意的是,在使用取整運算時,INT函數(shù)的功能是四舍五入運算,然而我們往往又不想去數(shù)據(jù)存儲區(qū)折騰二進制數(shù),所以此處應該分類討論。這里以二位數(shù)為例:IF(總值-10*INT(總值/10)0)THEN十位=INT(總值/10)-1;個位=總值+10-10*INT(總值/10);ELSE十位=INT(總值/10);個位=總值-10*INT(總值/10);ENDIF就像這樣,以后每多一位加一個判斷語句就可以了。不覺得奇怪么?一個可編程軟件連個取整函數(shù)都沒有?后
14、來終于知道原來還有這兩個函數(shù):mod(x, y) 此函數(shù)返回數(shù)值x除y的值的摸。 參數(shù)x、y是任一數(shù)字或者天工組態(tài)的實型或整型變量名。 例: mod(10, 3); 返回值是1。trunc(x) 此函數(shù)用于截取整數(shù)(無四舍五入)。參數(shù)x是任一數(shù)字或者天工組態(tài)的實型或整型變量名。 例: trunc(4.5); 返回值為4。 Int(4.2) 返回值為4。4.時間流控制我們發(fā)現(xiàn),在天工組態(tài)的運行周期中,低于一秒的設置都被視為一秒。在畫面程序或主程序中需要嚴格定時的情況下,一秒還算是比較好使。這就意味著每過一秒,你就可以讓一個事件發(fā)生。例如:倒計時功能。先定義一個離散量作為判斷標志,再定義一個整型量
15、作為計數(shù)運行時(周期1s):IF(計時標志=1)THEN計時計數(shù)=計時計數(shù)-1;ENDIFIF(計時計數(shù)=0)THEN計時標志=0;ENDIF這樣就可以通過觸發(fā)程序改變計時標志從而開始計時,每秒減一,這個值如果作為數(shù)碼顯示值的總值就可以用剛才的方法顯示了,但是一定要記得給計時計數(shù)重置。一切需要時間經(jīng)過而觸發(fā)的事件都是可以通過這個程序來實現(xiàn)的,還可以在主流時間中分出時間支流。IF(計時計數(shù)=某時刻)THEN事件標志=1;ENDIF5.畫面程序編寫簡單的畫面程序是容易實現(xiàn)的,如位置移動和旋轉(zhuǎn)等,我們只需要定義相關變量并將其作為程序觸發(fā)條件就可以了。在具體設置中可以調(diào)整變量與實際效果之間的線性相關度,將一個表達式作為觸發(fā)條件也是可以的。這里要說明一下有關坐標的問題,坐標的原點是在畫面最左上角一點。在需要旋轉(zhuǎn)的情況,要注意圖形中心與旋轉(zhuǎn)中心的水平、垂直距離的計算是后者減前者。但是有時也想做出一些大動作,比如說沿著斜線走,或是兩個連接著的圖形各自旋轉(zhuǎn)。就像這樣:這時就需要使用三角函數(shù)對位置增量賦值了。例如在數(shù)據(jù)改變程序中,以角位置為條件:IF(角位置=-1)THE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:精神生活共同富裕視域下紅色文化旅游深度融合的響應機制與路徑研究
- 課題申報參考:教育治理現(xiàn)代化背景下現(xiàn)代產(chǎn)業(yè)學院內(nèi)部治理結構的優(yōu)化研究
- 2025年c語言實習心得體會模版(4篇)
- 2025版房地產(chǎn)尾款支付及產(chǎn)權過戶協(xié)議3篇
- 二零二五年車輛抵押維修保養(yǎng)合同3篇
- 二零二五版貿(mào)促會棉花期貨交易專區(qū)棉花現(xiàn)貨買賣合同3篇
- 二零二五年度企業(yè)法律風險防控培訓合同3篇
- 主體架構工程分包合同(2024年度)一
- 專屬分店管理承包協(xié)議模板版A版
- 二零二五年度多人合伙經(jīng)營酒吧合作協(xié)議范本3篇
- 《健康體檢知識》課件
- 生產(chǎn)計劃主管述職報告
- 名表買賣合同協(xié)議書
- JTG-T-F20-2015公路路面基層施工技術細則
- 2024年遼寧石化職業(yè)技術學院單招職業(yè)適應性測試題庫附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責承諾書范本
- 練字本方格模板
評論
0/150
提交評論