版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.ST語(yǔ)言編程手冊(cè)目錄1. ST基本原理101.1語(yǔ)言描述101.1.1語(yǔ)法圖101.1.2語(yǔ)法圖中的塊101.1.3規(guī)則的意義(語(yǔ)義)111.2基本元素的語(yǔ)言111.2.1 ST字符組111.2.2 ST中的標(biāo)識(shí)符121.2.2.1標(biāo)識(shí)符的規(guī)則121.2.2.2標(biāo)識(shí)符舉例131.2.3預(yù)留標(biāo)識(shí)符131.2.3.1保護(hù)標(biāo)識(shí)符141.2.4數(shù)字和布爾值201.2.4.1整數(shù)201.2.4.2浮點(diǎn)數(shù)211.2.4.3指數(shù)211.2.4.4布爾值211.2.4.5數(shù)字的數(shù)據(jù)類型221.2.5字符串221.3 ST源文件的結(jié)構(gòu)231.3.1語(yǔ)句241.3.2注釋251.4數(shù)據(jù)類型261.4.1基本數(shù)據(jù)
2、類型261.4.1.1基本數(shù)據(jù)類型261.4.1.2基礎(chǔ)數(shù)據(jù)類型的值的范圍限制281.4.1.3普通的數(shù)據(jù)類型291.4.1.4基礎(chǔ)系統(tǒng)數(shù)據(jù)類型301.4.2用戶定義的數(shù)據(jù)類型301.4.2.1用戶定義的數(shù)據(jù)類型301.4.2.2用戶定義的數(shù)據(jù)類型的語(yǔ)法(類型聲明)311.4.2.3基礎(chǔ)派生或派生的數(shù)據(jù)類型321.4.2.4 派生數(shù)據(jù)類型ARRAY331.4.2.5 派生的數(shù)據(jù)類型枚舉341.4.2.6派生的數(shù)據(jù)類型STRUCT(結(jié)構(gòu))351.4.3技術(shù)目標(biāo)數(shù)據(jù)類型371.4.3.1技術(shù)目標(biāo)數(shù)據(jù)類型的描述371.4.3.2軸屬性的繼承381.4.3.3技術(shù)目標(biāo)數(shù)據(jù)類型的例子391.4.4系統(tǒng)數(shù)
3、據(jù)類型401.5變量聲明401.5.1變量聲明的語(yǔ)法401.5.2所有變量聲明的概述421.5.3變量或數(shù)據(jù)類型的初始值431.6賦值和表達(dá)式461.6.1賦值471.6.1.1賦值的語(yǔ)法圖471.6.1.2基礎(chǔ)數(shù)據(jù)類型的變量的數(shù)值指定481.6.1.3串基礎(chǔ)數(shù)據(jù)類型的變量數(shù)值指定481.6.1.4位數(shù)據(jù)類型的變量的數(shù)值指定491.6.1.5派生的枚舉數(shù)據(jù)類型的變量的數(shù)值指定511.6.1.6派生的陣列數(shù)據(jù)類型的變量的數(shù)值指定511.6.1.7派生的STRUCT數(shù)據(jù)類型的變量數(shù)值指定511.6.2表達(dá)式521.6.2.1表達(dá)式結(jié)果521.6.2.2表達(dá)式的解釋順序531.6.3運(yùn)算對(duì)象531.
4、6.4算術(shù)表達(dá)式541.6.4.1算術(shù)表達(dá)式的例子571.6.5關(guān)系表達(dá)式571.6.6邏輯表達(dá)式和位串行表達(dá)式591.6.7運(yùn)算符的優(yōu)先級(jí)601.7控制語(yǔ)句611.7.1 IF語(yǔ)句611.7.2 CASE語(yǔ)句631.7.3 FOR語(yǔ)句641.7.3.1處理FOR語(yǔ)句651.7.3.2 FOR語(yǔ)句規(guī)則651.7.3.3FOR語(yǔ)句例子661.7.4WHILE語(yǔ)句661.7.5REPEAT語(yǔ)句671.7.6EXIT語(yǔ)句671.7.7RETURN語(yǔ)句681.7.8WAIFORCONDITION語(yǔ)句681.7.9GOTO語(yǔ)句701.8數(shù)據(jù)類型轉(zhuǎn)換701.8.1基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換701.8.1.1隱式數(shù)據(jù)
5、類型轉(zhuǎn)換711.8.1.2顯式數(shù)據(jù)類型轉(zhuǎn)換731.8.2補(bǔ)充的轉(zhuǎn)換742.功能,功能塊和程序742.1創(chuàng)建和調(diào)用功能和功能塊752.1.1定義功能752.1.2定義功能塊762.1.3FC和FB的聲明部分762.1.4FB和FC部分的語(yǔ)句782.1.5功能和功能塊的調(diào)用792.1.5.1參數(shù)轉(zhuǎn)移的原則792.1.5.2轉(zhuǎn)移給輸入?yún)?shù)的參數(shù)802.1.5.3參數(shù)轉(zhuǎn)移給in/out參數(shù)812.1.5.4參數(shù)轉(zhuǎn)移到輸出參數(shù)(僅對(duì)FB)822.1.5.5參數(shù)訪問時(shí)間822.1.5.6調(diào)用一個(gè)功能822.1.5.7調(diào)用功能塊(實(shí)例調(diào)用)832.1.5.8 在FB外訪問FB輸出參數(shù)842.1.5.9在FB
6、外訪問FB輸入?yún)?shù)852.1.5.10FB調(diào)用時(shí)的錯(cuò)誤源852.2功能和功能塊的比較862.2.1例子說明862.2.2帶注釋的源文件872.3程序882.4表達(dá)式903.在SIMOTION中ST的集成923.1源文件部分的使用923.1.1源文件部分的使用923.1.1.1interface部分923.1.1.2implementation部分943.1.1.3程序組織單元(POU)943.1.1.4功能(FC)953.1.1.5功能塊(FB)953.1.1.6程序963.1.1.7表達(dá)式973.1.1.8聲明部分973.1.1.9語(yǔ)句部分983.1.1.10數(shù)據(jù)類型定義983.1.1.11
7、變量聲明993.1.2在ST源文件之間的導(dǎo)入和導(dǎo)出1013.1.2.1單元標(biāo)識(shí)符1013.1.2.2一個(gè)導(dǎo)出單元的interface部分1023.1.2.3一個(gè)導(dǎo)出單元的例子1023.1.2.4在一個(gè)導(dǎo)入單元的USES語(yǔ)句1033.1.2.5一個(gè)導(dǎo)入單元的例子1043.2在SIMOTION中的變量1053.2.1變量模型1053.2.1.1單元變量1073.2.1.2不保留的單元變量1083.2.1.3保持單元變量1093.2.1.4本地變量(靜態(tài)和臨時(shí)變量)1103.2.1.5靜態(tài)變量1123.2.1.6臨時(shí)變量1133.2.2全局設(shè)備變量的使用1143.2.3變量類型的存儲(chǔ)范圍1153.2
8、.3.1存儲(chǔ)區(qū)域的例子,有效關(guān)于KernelV3.11163.2.3.2本地?cái)?shù)據(jù)棧變量的存儲(chǔ)要求(kernel V3.1或更高)1193.2.4變量初始化的時(shí)間1213.2.4.1保留全局變量的初始化1213.2.4.2不保留的全局變量的初始化1223.2.4.3本地變量的初始化1233.2.4.4靜態(tài)編程變量的初始化1243.2.4.5功能塊實(shí)例的初始化1253.2.4.6技術(shù)目標(biāo)的系統(tǒng)變量的初始化1253.2.4.7全局變量的版本ID和下載時(shí)的初始化1263.2.5變量和HMI設(shè)備1273.3訪問輸入和輸出(過程圖像,I/O變量)1293.3.1訪問輸入和輸出的概述1293.3.2直接訪問
9、和過程圖像訪問的重要特征1303.3.3直接訪問和循環(huán)任務(wù)的過程圖像1313.3.3.1 直接訪問和循環(huán)任務(wù)的過程圖像的I/O地址的規(guī)則1323.3.3.2為直接訪問和循環(huán)任務(wù)的過程圖像創(chuàng)建一個(gè)I/O變量1333.3.3.3輸入I/O地址的語(yǔ)法圖1343.3.3.4可能的I/O變量的數(shù)據(jù)類型1353.3.4背景任務(wù)的固定過程圖像的訪問1353.3.4.1背景任務(wù)的固定過程圖像的絕對(duì)訪問(絕對(duì)PI訪問)1363.3.4.2一個(gè)絕對(duì)過程圖像訪問的標(biāo)識(shí)符語(yǔ)法1373.3.4.3背景任務(wù)的固定過程圖像的符號(hào)訪問(符號(hào)PI訪問)1383.3.4.4可能的符號(hào)PI訪問的數(shù)據(jù)類型1393.3.4.5符號(hào)PI
10、訪問的例子1393.3.4.6為訪問背景任務(wù)固定過程圖像而創(chuàng)建一個(gè)I/O變量1393.3.5訪問I/O變量1403.4使用庫(kù)1403.4.1編輯一個(gè)庫(kù)1413.4.2庫(kù)的know-how保護(hù)1423.4.3從庫(kù)中使用數(shù)據(jù)類型,功能和功能塊1433.5相同的標(biāo)識(shí)符和命名空間的使用1443.5.1相同的標(biāo)識(shí)符的使用1443.5.2命名空間1463.6參考數(shù)據(jù)1493.6.1交叉對(duì)照表1503.6.1.1創(chuàng)建一個(gè)交叉對(duì)照表單1503.6.1.2交叉對(duì)照表的內(nèi)容1503.6.1.3交叉對(duì)照表的使用1513.6.2程序結(jié)構(gòu)1513.6.2.1程序結(jié)構(gòu)的內(nèi)容1523.6.3代碼屬性1523.6.3.1代碼
11、屬性內(nèi)容1533.7控制預(yù)處理器和pragma編輯1533.7.1控制一個(gè)預(yù)處理器1533.7.1.1預(yù)處理器語(yǔ)句1543.7.1.2預(yù)處理器語(yǔ)句的例子1573.7.2屬性控制編輯器1583.8跳轉(zhuǎn)語(yǔ)句和標(biāo)簽1604.錯(cuò)誤源和程序調(diào)試1614.1避免錯(cuò)誤和有效編程的注釋1614.2程序調(diào)試1614.2.1程序測(cè)試的模式1614.2.1.1SIMOTION設(shè)備模式1614.2.1.2life-sign監(jiān)視的重要信息1634.2.1.3life-sign監(jiān)視參數(shù)1644.2.2符號(hào)瀏覽器1654.2.2.1符號(hào)瀏覽器的屬性1654.2.2.2使用符號(hào)瀏覽器1654.2.3在watch表中監(jiān)視變量1
12、674.2.3.1在watch表中的變量1674.2.3.2使用watch表格1674.2.4程序運(yùn)行1684.2.4.1程序運(yùn)行:顯示代碼位置和調(diào)用路徑1684.2.4.2參數(shù)調(diào)用棧程序運(yùn)行1694.2.4.3程序運(yùn)行工具欄1694.2.5程序狀態(tài)1694.2.5.1程序狀態(tài)的屬性1694.2.5.2使用狀態(tài)程序1704.2.5.3程序狀態(tài)的調(diào)用路徑1724.2.5.4參數(shù)調(diào)用路徑狀態(tài)程序1734.2.6斷點(diǎn)1734.2.6.1設(shè)置斷點(diǎn)的普通步驟1734.2.6.2設(shè)置debug模式1744.2.6.3定義debug任務(wù)組1754.2.6.4debug任務(wù)組參數(shù)1764.2.6.5debug
13、表格參數(shù)1774.2.6.6設(shè)置斷點(diǎn)1774.2.6.7斷點(diǎn)工具欄1794.2.6.8定義一個(gè)單獨(dú)斷點(diǎn)的調(diào)用路徑1794.2.6.9斷點(diǎn)調(diào)用路徑/任務(wù)選擇參數(shù)1814.2.6.10定義所有斷點(diǎn)的調(diào)用路徑1824.2.6.11每個(gè)POU所有斷點(diǎn)的調(diào)用路徑/任務(wù)選擇參數(shù)1834.2.6.12激活斷點(diǎn)1844.2.6.13顯示調(diào)用棧1854.2.6.14斷點(diǎn)調(diào)用棧參數(shù)1864.2.7追溯1861. ST基本原理此章節(jié)描述了ST中的語(yǔ)言資源和使用方法。請(qǐng)注意此章節(jié)中描述了功能、功能塊和任務(wù)控制系統(tǒng)。一個(gè)完整正式的語(yǔ)言描述包括語(yǔ)法圖。1.1語(yǔ)言描述在本手冊(cè)的下列章節(jié)中語(yǔ)法圖用作語(yǔ)言描述的基礎(chǔ),為你提供了
14、對(duì)ST語(yǔ)法結(jié)構(gòu)的新認(rèn)識(shí)。1.1.1語(yǔ)法圖語(yǔ)法圖是對(duì)語(yǔ)法結(jié)構(gòu)的圖形式的闡述。結(jié)構(gòu)是由一系列的規(guī)則描述組成??梢曰诂F(xiàn)有的規(guī)則生成新的規(guī)則。上圖中的語(yǔ)法圖需從左至右讀。需要注意下列規(guī)則結(jié)構(gòu):序列:塊的序列選項(xiàng):可以跳過的語(yǔ)句迭代:一個(gè)或多個(gè)語(yǔ)句的重復(fù)替代:Branch1.1.2語(yǔ)法圖中的塊塊是基本元素。下圖顯示了代表塊而使用的符號(hào)類型。 要更多解釋的基本元素 由更多的語(yǔ)法圖解釋的復(fù)合單元當(dāng)輸入源文本時(shí)需要注意格式化規(guī)則和非格式化規(guī)則。比如:把語(yǔ)法圖中的塊或元素轉(zhuǎn)化為源文本(見幫助中的語(yǔ)言描述,第291頁(yè))1.1.3規(guī)則的意義(語(yǔ)義)規(guī)則能僅代表語(yǔ)言的格式結(jié)構(gòu)。意義(語(yǔ)義)一般不明顯。由于這個(gè)原因,
15、如果意義很關(guān)鍵,則需要在規(guī)則旁邊寫上額外的信息。如果同類型的元素意義不同,需要附上額外的命名。例如,額外指定每個(gè)十進(jìn)制字符串元素年,月或日(見308頁(yè))。名稱表示了用途 重要的限制也列出。如:整數(shù)規(guī)則中對(duì)于(負(fù)號(hào)),標(biāo)明負(fù)號(hào)只能在SINT, INT, and DINT數(shù)據(jù)類型之前出現(xiàn)(見308頁(yè))1.2基本元素的語(yǔ)言ST語(yǔ)言的基本元素包括ST字符組, 根據(jù)ST字符組(如:語(yǔ)言命令)創(chuàng)建的預(yù)留標(biāo)識(shí)符,自定義的標(biāo)識(shí)符和數(shù)字。ST字符組合預(yù)留標(biāo)識(shí)符都是基本的元素(terminals),因?yàn)槭菬o需另外的規(guī)則來描述。自定義的標(biāo)識(shí)符和數(shù)字不是terminals,因?yàn)樗鼈兪怯闪硗獾囊?guī)則來描述。在語(yǔ)法圖中,終
16、端是由圓形或者橢圓形符號(hào)來表示,但是復(fù)合單元由長(zhǎng)方形來表示(見語(yǔ)法圖中的塊,第72頁(yè))。下列內(nèi)容是主要終端的節(jié)選,作為全局預(yù)覽,參考基本元素(terminals,第294頁(yè))1.2.1 ST字符組ST使用ASCII字符組中的下列字母和數(shù)字從A到Z的大小字母從0到9的阿拉伯?dāng)?shù)字字母和數(shù)字是最常用的字符。例如,標(biāo)識(shí)符是字母,數(shù)字和下劃線的組合。下劃線是特殊的字符之一。特殊字符在ST中有特定的含義(見第291頁(yè)的正式語(yǔ)言描述和第294頁(yè)的基本元素)1.2.2 ST中的標(biāo)識(shí)符標(biāo)識(shí)符的ST中的名稱。這些名稱可以根據(jù)系統(tǒng)來定義,例如語(yǔ)言命令等。但是,名稱可以是用戶定義,比如常量、變量或功能。1.2.2.1
17、標(biāo)識(shí)符的規(guī)則標(biāo)識(shí)符是由字母(A到Z,a到z)、數(shù)字(0到9)或單獨(dú)的下劃線隨意組成,但是首字符必須是字母或者下劃線。大小寫字母沒有區(qū)分(比如,在編輯器中Anna和AnNa是一樣的)。一個(gè)正式的標(biāo)識(shí)符可以由以下的語(yǔ)法圖表示:命名時(shí),最好選用唯一的、有意義的命名,以便解釋程序。圖表中的語(yǔ)法圖聲明了一個(gè)標(biāo)識(shí)符的首字符必須是字母或者下劃線。下劃線必須跟著字母或數(shù)字。如:不允許連續(xù)有兩根或以上的下劃線。下劃線可以跟著任意或者一系列的數(shù)字,下劃線或字母。在這唯一的例外是兩條下劃線可能不會(huì)同時(shí)出現(xiàn)。1.2.2.2標(biāo)識(shí)符舉例有效的標(biāo)識(shí)符無效的標(biāo)識(shí)符無效標(biāo)識(shí)符原因4ter第一次字符必須為一個(gè)字母或者下劃線*#A
18、B不允許特殊字符(除了下劃線)RR_20不允許有兩個(gè)下劃線S value不允許出現(xiàn)空格,因?yàn)槭翘厥庾址鸄rray雖然ARRAY是一個(gè)正式有效的標(biāo)識(shí)符,但是它是一個(gè)預(yù)留標(biāo)識(shí)符。,只能做預(yù)先定義使用。這意味著你不能使用這個(gè)名稱,比如:變量標(biāo)識(shí)符不能用作絕不定義標(biāo)識(shí)符:與預(yù)留標(biāo)識(shí)符一樣與任務(wù)命名相匹配注意:如有可能,避免定義由下劃線,struct,enum,或者command開始的標(biāo)識(shí)符雖然這些是有效的標(biāo)識(shí)符,當(dāng)你下載技術(shù)包時(shí)可能導(dǎo)致出現(xiàn)錯(cuò)誤。在基礎(chǔ)系統(tǒng)和在技術(shù)包中命令詞語(yǔ),參數(shù)或數(shù)據(jù)類型以這些字符開始。1.2.3預(yù)留標(biāo)識(shí)符預(yù)留標(biāo)識(shí)符可能和預(yù)先定義的用途不一樣。你不能用預(yù)留標(biāo)識(shí)符的名稱來命名一個(gè)變量
19、或者數(shù)據(jù)類型。符號(hào)的大小寫無區(qū)別。所有標(biāo)識(shí)符的預(yù)先定義的意義可以在SIMOTION基本功能功能手冊(cè)中找到:ST編程語(yǔ)言中的保護(hù)或者預(yù)留標(biāo)識(shí)符,欲知更多,請(qǐng)見76頁(yè)和81頁(yè)標(biāo)準(zhǔn)功能和功能定義的數(shù)據(jù)類型,欲知更多,請(qǐng)見251頁(yè)系統(tǒng)的常規(guī)功能塊SIMOTION設(shè)備系統(tǒng)功能、系統(tǒng)變量和數(shù)據(jù)類型技術(shù)目標(biāo)的系統(tǒng)功能、系統(tǒng)變量和數(shù)據(jù)類型1.2.3.1保護(hù)標(biāo)識(shí)符ST語(yǔ)言中的保護(hù)標(biāo)識(shí)符全列在了下表中。欲見所有預(yù)留詞的簡(jiǎn)短描述,請(qǐng)見附錄預(yù)留詞語(yǔ)(第299頁(yè))和規(guī)則附錄中的語(yǔ)法圖(第307頁(yè))3.2.3.2額外的預(yù)留標(biāo)識(shí)符下表包含了將來擴(kuò)展所有的預(yù)留標(biāo)識(shí)符。1.2.4數(shù)字和布爾值在ST中可以通過多種方式編寫數(shù)字。數(shù)
20、字可以包括一個(gè)符號(hào)、一個(gè)小數(shù)點(diǎn)或者一個(gè)指數(shù)。下列規(guī)則適用于所有的數(shù)字:數(shù)字中不能出現(xiàn)逗號(hào)和空格下劃線允許作為視覺上的分隔線數(shù)字可以冠以正號(hào)(+)或者負(fù)號(hào)(),如果沒有使用符號(hào)則認(rèn)為數(shù)字為正。數(shù)字不能超過確定的最大值或最小值1.2.4.1整數(shù)整數(shù)既不包括小數(shù)點(diǎn)也不包括指數(shù)。一個(gè)整數(shù)是一系列的數(shù)字,也可以在前面加上一個(gè)符號(hào)。下列為有效的整數(shù):0 1 +1 -1743 -528060 000-32 211 321下列整數(shù)為無效,并且已經(jīng)列出原因:123,456不允許有逗號(hào)36.整數(shù)不能包括小數(shù)點(diǎn)10 20 30不允許有空格在ST中,你可以使用不同的編號(hào)體系來表示整數(shù)。通過插入編號(hào)系統(tǒng)的關(guān)鍵字前綴來實(shí)
21、現(xiàn)。2#為二進(jìn)制8#為八進(jìn)制16#為十六進(jìn)制十進(jìn)制小數(shù)15的有效表示方式為:2#1111 8#1716#F1.2.4.2浮點(diǎn)數(shù)下列為有效的浮點(diǎn)數(shù)0.0 1.3 -0.2 827.6020000.0+0.00074360_000.15-315.0066下列為無效的浮點(diǎn)數(shù)1. 數(shù)字必須出現(xiàn)在小數(shù)點(diǎn)之前或之后1,000.0不允許有逗號(hào)1.333.333不允許有兩個(gè)小數(shù)點(diǎn)1.2.4.3指數(shù)指數(shù)可以用來定義小數(shù)點(diǎn)的位置。如果沒有出現(xiàn)小數(shù)點(diǎn),我們就假設(shè)位于數(shù)字的右側(cè)。指數(shù)必須為正整數(shù)或負(fù)整數(shù)?;鶖?shù)10用字母E來表示。3 x 108在ST中可以通過下列正確的浮點(diǎn)數(shù)來表示:3.0E+83.0E83e+83E8
22、0.3E+90.3e930.0E+730e7下列浮點(diǎn)數(shù)是無效的:3.E+8數(shù)字必須出現(xiàn)在小數(shù)點(diǎn)之前或之后8e2.3指數(shù)必須為一個(gè)整數(shù).333e-3數(shù)字必須出現(xiàn)在小數(shù)點(diǎn)之前或之后30 E8不允許有空格1.2.4.4布爾值布爾值是恒定常量。必須通過0或者1,TRUE或者FALSE來表示。1.2.4.5數(shù)字的數(shù)據(jù)類型編輯器根據(jù)數(shù)值和使用來自動(dòng)選擇適合數(shù)字的基本數(shù)據(jù)類型。也可以直接指定數(shù)據(jù)類型。在數(shù)字前面輸入數(shù)據(jù)類型(數(shù)字?jǐn)?shù)據(jù)類型)和字符“#”。1.2.5字符串什么是字符串?一個(gè)字符串是許多的0或在最前面或者最后面帶撇號(hào)的多字符。每個(gè)字符在串中一個(gè)字符可以如下輸入:可打印的字符(ASCII code
23、$20 to $7E, $80 to $FF),除了美元符號(hào)(ASCII code $24)和撇號(hào)(ASCII code $27)之外,因?yàn)檫@些符號(hào)在字符串中有著特殊的含義。美元符號(hào)($)之后的相關(guān)字符的2位的十六進(jìn)制ASCII code根據(jù)下表組成的兩個(gè)字符的組合1.3 ST源文件的結(jié)構(gòu)一個(gè)ST源包含連續(xù)的文本,通過劃分為邏輯塊形成文本。詳細(xì)的規(guī)則見源文件章節(jié)(第169頁(yè))。簡(jiǎn)單的總結(jié)如下:一個(gè)ST源文件是可以在項(xiàng)目中創(chuàng)建的一個(gè)邏輯單元,可以出現(xiàn)多次。通常被稱為一個(gè)單元。一個(gè)ST源文件的邏輯部分被稱為Section(見表格)一個(gè)用戶程序是所有程序源的集合(如:ST源文件,MCC單元)每個(gè)ST
24、源文件的邏輯部分的開頭和結(jié)尾都有特定關(guān)鍵詞沒有必要自己對(duì)每個(gè)功能編程,可以使用SIMOTION系統(tǒng)組件。這些是預(yù)先編程好的部分,如系統(tǒng)功能或技術(shù)目標(biāo)的功能。源文件部分描述單元語(yǔ)句(可選的)包括ST的名稱interface部分包括導(dǎo)入和導(dǎo)出變量的語(yǔ)句,類型和POUimplementation部分包括ST源文件的執(zhí)行部分POU(程序組織單元)ST源文件(程序,功能,功能塊)單獨(dú)的可執(zhí)行部分聲明部分包含聲明(如變量和類型),可以被包含在interface部分和implementation部分,以及POU中語(yǔ)句部分包含一個(gè)POU的可執(zhí)行語(yǔ)句注意:在線幫助中有很多可用的示范單元的模板。你可以使用作為一個(gè)
25、新ST源文件的模板。調(diào)用ST編輯器幫助,點(diǎn)擊相關(guān)鏈接。復(fù)制文本到ST編輯器窗口,根據(jù)你的需求修改模板。示范單元的模板包括此模板的復(fù)制件1.3.1語(yǔ)句一個(gè)POU的語(yǔ)句部分包括重復(fù)的單獨(dú)語(yǔ)句。跟著POU的聲明部分,以POU的結(jié)束而結(jié)束。首尾沒有明顯的關(guān)鍵詞。在ST中有三種基本語(yǔ)句:賦值:從表達(dá)式到變量的賦值,見105頁(yè)變量聲明控制語(yǔ)句:語(yǔ)句的分支的重復(fù),見130頁(yè)控制子程序執(zhí)行:功能和功能塊,見147頁(yè)功能,功能塊和程序1.3.2注釋注釋用作編制文件,同時(shí)也幫助用戶理解源文件部分。在編制后,對(duì)于程序執(zhí)行沒有任何意義。注釋有兩種:線注釋塊注釋線注釋由/開始。編輯器將進(jìn)行跟隨的文本,知道線注釋結(jié)束你可
26、以在很多線之后輸入一個(gè)塊注釋,如果 (首尾都是 *)先于它。當(dāng)插入注釋時(shí)注意:在注釋中可以使用完整的擴(kuò)展ASCII字符集在線型注釋中可以忽略字符組(* 和 *)不允許塊注釋的嵌套。但是,在塊注釋中你可以嵌套線注釋??梢栽谌我馕恢貌迦胱⑨?,但是不能在保持的規(guī)則中插入,如標(biāo)識(shí)符的名稱中。欲知更 多規(guī)則信息,見291頁(yè)語(yǔ)言描述源。1.4數(shù)據(jù)類型使用數(shù)據(jù)類型來定義如何在程序源中使用變量或常量值。下列數(shù)據(jù)類型對(duì)用戶是可用的:基本數(shù)據(jù)類型用戶定義的數(shù)據(jù)類型(UDT)簡(jiǎn)單的導(dǎo)數(shù)陣列枚舉結(jié)構(gòu)技術(shù)目標(biāo)數(shù)據(jù)類型系統(tǒng)數(shù)據(jù)類型見 基本數(shù)據(jù)類型(第90頁(yè)) 技術(shù)目標(biāo)數(shù)據(jù)類型(第101頁(yè)) 系統(tǒng)數(shù)據(jù)類型(第104頁(yè))1.
27、4.1基本數(shù)據(jù)類型1.4.1.1基本數(shù)據(jù)類型基本數(shù)據(jù)類型定義了不能分成更小的單元的數(shù)據(jù)結(jié)構(gòu)。一個(gè)基本數(shù)據(jù)類型描述了有固定長(zhǎng)度的存儲(chǔ)區(qū)域,代表了數(shù)字?jǐn)?shù)據(jù)、整數(shù)、浮點(diǎn)值、時(shí)間、日期和字符串。所有的基本數(shù)據(jù)類型在下表中列出:類型預(yù)留詞位寬度值的范圍位數(shù)據(jù)類型:此類型的數(shù)據(jù)使用1位、8位、16位或32位。此數(shù)據(jù)類型的變量初始值為0位BOOL10, 1 or FALSE, TRUE字節(jié)BYTE816#0 to 16#FF字WORD1616#0 to 16#FFFF雙字DWORD3216#0to 16#FFFF_FFFF數(shù)字類型:此類數(shù)據(jù)類型可用于處理數(shù)值。此數(shù)據(jù)類型的變量初始值為0(全為整數(shù))或0.0(
28、全為浮點(diǎn)數(shù))短整數(shù)SINT8-128 to 127 (-2*7 to 2*7-1)無符號(hào)短整數(shù)U SINT80 to 255 (0 to 2*8-1)整數(shù)INT16-32_768 to 32_767 (-2*15 to 2*15-1)無符號(hào)整數(shù)UINT160 to 65_535 (0 to 2*16-1)雙整數(shù)DINT32-2_147_483_648 to 2_147_483_647 (-2*31 to 2*31-1)無符號(hào)雙整數(shù)UDINT320 to 4_294_96_7295 (0 to 2*32-1)浮點(diǎn)數(shù)(per IEEE -754)REAL32-3.402_823_466E+38to
29、 1.175_494_351E38, 0.0,+1.175_494_351E38 to +3.402_823_466E+38精度:23位尾數(shù)(對(duì)應(yīng)6位小數(shù)),8位指數(shù),1位字符長(zhǎng)浮點(diǎn)數(shù)(IEEE-754)LREAL64-1.797_693_134_862_315_8E+308 to -2.225_073_858_507_201_4E308, 0.0,+2.225_073_858_507_201_4E308 to+1.797_693_134_862_315_8E+308精度:52位尾數(shù)(對(duì)應(yīng)15位小數(shù)),11位指數(shù),1位字符時(shí)間類型:此類數(shù)據(jù)用于表示不同的時(shí)間或日期1分鐘的增量的持續(xù)時(shí)間TIME
30、32T#0d_0h_0m_0s_0msto T#49d_17h_2m_47s_295ms天,小時(shí),分鐘的數(shù)值最多為2位。里程碑最多為3位。初始為T#0d_0h_0m_0s_0ms 1天的增量的日期DATE32D#1992-01-01 to D#2200-12-31需要考慮閏年,年份為4位,月份和天數(shù)為2位。初始為D#0001-01-01分鐘為單位的當(dāng)日時(shí)間TIME_OF_DAY(TOD)64TOD#0:0:0.0 to TOD#23:59:59.999天,小時(shí),分鐘的數(shù)值最多為2位。里程碑最多為3位。初始為TOD#0:0:0.0日期和時(shí)間DATE_AND_TIME(DT)64DT#1992-0
31、1-01-0:0:0.0to DT#2200-12-31-23:59:59.999日期和時(shí)間包括日期和時(shí)間的類型。初始為DT#0001-01-01-0:0:0.0串類型:此類數(shù)據(jù)代表字符串,每個(gè)字符使用特定字節(jié)的數(shù)字來編碼。串的長(zhǎng)度可以在聲明中定義。用 和來表示長(zhǎng)度。如:STRING100。默認(rèn)的設(shè)置包含80個(gè)字符。指定(初始)字符的數(shù)字可以少于聲明的長(zhǎng)度。1字節(jié)/字符的串STRING8ASCII code $00 到 $F的所有字符都是允許的。 默認(rèn) (空字符串)注意:當(dāng)導(dǎo)出變量到其他系統(tǒng)時(shí),需要考慮對(duì)應(yīng)的目標(biāo)系統(tǒng)的數(shù)據(jù)類型的值的范圍1.4.1.2基礎(chǔ)數(shù)據(jù)類型的值的范圍限制基礎(chǔ)數(shù)據(jù)類型的值的
32、范圍作為常量可用。1.4.1.3普通的數(shù)據(jù)類型普通的數(shù)據(jù)類型被用作系統(tǒng)功能和系統(tǒng)功能塊的輸入和輸出參數(shù)。子程序被稱做包含在普通數(shù)據(jù)類型中的每個(gè)數(shù)據(jù)類型的變量。下表列出了可用的普通數(shù)據(jù)類型:1.4.1.4基礎(chǔ)系統(tǒng)數(shù)據(jù)類型在SIMOTION系統(tǒng)中,表格中指出的數(shù)據(jù)類型使用與基礎(chǔ)數(shù)據(jù)類型類似。和許多系統(tǒng)功能一起使用。標(biāo)識(shí)符位寬度用途StructAlarmId32alarmld的數(shù)據(jù)類型用于識(shí)別唯一的信息。alarmld用于生成信息。見功能手冊(cè)SIMOTION基本功能。初始為STRUCTALARMID#NILStructTaskId32taskld的數(shù)據(jù)類型是在執(zhí)行系統(tǒng)中識(shí)別唯一的任務(wù)。見功能手冊(cè)SI
33、MOTION基本功能。初始為STRUCTTASKID#NIL無效的基礎(chǔ)數(shù)據(jù)類型數(shù)值的符號(hào)常量符號(hào)常量數(shù)據(jù)類型意義STRUCTALARMID#NILStructAlarmId無效AlarmIdSTRUCTTASKID#NILStructTaskId無效TaskId1.4.2用戶定義的數(shù)據(jù)類型1.4.2.1用戶定義的數(shù)據(jù)類型用戶定義的數(shù)據(jù)類型(UDT)通過在聲明章節(jié)中隨后的源文件部分和以下內(nèi)容來創(chuàng)建TYPE/END_TYPE:interface部分implementation部分程序組織單元(POU)可以使用在聲明章節(jié)中創(chuàng)建的數(shù)據(jù)類型。源文件部分決定了類型聲明的范圍。1.4.2.2用戶定義的數(shù)據(jù)類
34、型的語(yǔ)法(類型聲明)對(duì)于每個(gè)聲明的數(shù)據(jù)類型,需要遵循以下: 1.名稱:數(shù)據(jù)類型的名稱必須遵循標(biāo)識(shí)符的規(guī)則。 2.數(shù)據(jù)類型聲明 數(shù)據(jù)類型包括(見第96頁(yè),基礎(chǔ)派生或派生數(shù)據(jù)類型) -基本數(shù)據(jù)類型 -之前聲明的UDT -TO數(shù)據(jù)類型 -系統(tǒng)數(shù)據(jù)類型下列數(shù)據(jù)類型聲明也是可能的:-陣列數(shù)據(jù)類型聲明(見派97頁(yè)生數(shù)據(jù)類型ARRAY)-枚舉數(shù)據(jù)類型聲明(見派99頁(yè)生數(shù)據(jù)類型Enumerator)-STRUCT數(shù)據(jù)類型聲明(見派100頁(yè)生數(shù)據(jù)類型STRUCT)括號(hào)中的內(nèi)容只可以參考的章節(jié),相關(guān)的數(shù)據(jù)類型聲明詳細(xì)描述在這些章節(jié)中。3.可選的初始值你可以為每個(gè)數(shù)據(jù)類型指定初始值。如果你聲明一個(gè)數(shù)據(jù)類型的變量,初
35、始值被指定為變量。例外:在STRUCT數(shù)據(jù)類型中,每個(gè)單獨(dú)的組件的初始值范圍規(guī)定在數(shù)據(jù)類型聲明中見變量或數(shù)據(jù)類型的初始化(第107頁(yè))完整的UDT聲明用END_TYPE關(guān)鍵詞來結(jié)束。你可以使用TYPE/END_TYPE結(jié)構(gòu)來創(chuàng)建任意數(shù)據(jù)類型的數(shù)字。你可以使用定義的數(shù)據(jù)類型來聲明變量或參數(shù)。只要語(yǔ)法在圖標(biāo)中可見,UDT可以用任意方式嵌套。例如:你可以使用之前定義的UDT或嵌套結(jié)構(gòu)作為一個(gè)數(shù)據(jù)類型聲明。類型聲明僅可以連續(xù)使用,并不是以嵌套結(jié)構(gòu)的形式。注意:你可以學(xué)習(xí)如何在所有變量聲明的概述(見106頁(yè))中聲明變量和參數(shù),以及如何在語(yǔ)法中使用UDT來數(shù)值指定(見113頁(yè))。1.4.2.3基礎(chǔ)派生或派
36、生的數(shù)據(jù)類型在數(shù)據(jù)類型的派生中,一個(gè)基礎(chǔ)或用戶定義的數(shù)據(jù)類型(UDT)使用TYPE/END_TYPE結(jié)構(gòu)來定義。TYPE標(biāo)識(shí)符:基本數(shù)據(jù)類型 := initialization ; END_TYPETYPE標(biāo)識(shí)符:用戶定義數(shù)據(jù)類型 := initialization ; END_TYPE一旦你已聲明數(shù)據(jù)類型,你可以定義派生的數(shù)據(jù)類型標(biāo)識(shí)符的變量。這等同于聲明變量。1.4.2.4 派生數(shù)據(jù)類型ARRAYARRAY派生數(shù)據(jù)類型包括用TYPE/END_TYPE結(jié)構(gòu)來定義的同種數(shù)據(jù)類型。下圖的語(yǔ)法圖展示了這種數(shù)據(jù)類型,在預(yù)留標(biāo)識(shí)符OF之后這種數(shù)據(jù)類型聲明得更加詳細(xì)。TYPE標(biāo)識(shí)符:ARRAY數(shù)據(jù)類型聲
37、明 := initialization ; END_TYPE索引聲明書描述了陣列的限制:陣列限制聲明了索引值的最大和最小值??梢允褂贸A炕虺A勘磉_(dá)式。數(shù)據(jù)類型為DINT(或轉(zhuǎn)化為DINT-詳見141頁(yè)基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)化)陣列限制必須用兩個(gè)句號(hào)隔開全部的索引聲明須在方括號(hào)中索引可以為一個(gè)數(shù)據(jù)類型DINT(或轉(zhuǎn)化為DINT-詳見141頁(yè)基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)化)的整數(shù)值注意:如果運(yùn)行時(shí)陣列超限,程序會(huì)產(chǎn)生過程故障(見SIMOTION基本功能功能手冊(cè))用數(shù)據(jù)類型聲明來聲明陣列組件的數(shù)據(jù)類型。本章節(jié)中所描述的所有的選項(xiàng)都可以用作數(shù)據(jù)類型,甚至是用戶定義數(shù)據(jù)(UDT)。有多種不同的陣列類型:一維陣列類型為升序排列
38、的一列數(shù)據(jù)元素二維陣列是一個(gè)包括行和列的數(shù)據(jù)表。第一維是指行數(shù),第二維是指列數(shù)。更高維的陣列類型是二維陣列類型的擴(kuò)展二維陣列可以與帶行和列的表格比較。可以通過多層次的類型聲明來創(chuàng)建二維或多維陣列。在例子中,你可以定義:表格列a1 到 a3作為一維陣列,將包含整數(shù)表格行矩陣11 到矩陣24作為一個(gè)陣列,但是作為使用表格中的列創(chuàng)建的陣列的數(shù)據(jù)類型聲明。當(dāng)你在數(shù)據(jù)類型聲明中聲明陣列時(shí),創(chuàng)建了一個(gè)第二維度??梢允褂么朔绞絼?chuàng)建更多的維度。使用創(chuàng)建此表格的數(shù)據(jù)類型來聲明一個(gè)變量。使用方括號(hào)為表格中的每個(gè)維度尋址。1.4.2.5 派生的數(shù)據(jù)類型枚舉在枚舉的數(shù)據(jù)類型中,使用受限的標(biāo)識(shí)符或名稱來定義TYPE/E
39、ND_TYPE結(jié)構(gòu)。TYPE標(biāo)識(shí)符:枚舉數(shù)據(jù)類型聲明 := initialization ; END_TYPE一旦你已聲明了標(biāo)識(shí)符的數(shù)據(jù)類型,可以在枚舉中定義變量。在語(yǔ)句部分,可以從這些變量的定義標(biāo)識(shí)符(枚舉元素)表單中數(shù)值指定??梢灾苯勇暶鲾?shù)據(jù)類型:把枚舉數(shù)據(jù)類型標(biāo)識(shí)符和“#”放在枚舉前面??梢园瑤num_type#MIN和enum_type#MAX結(jié)構(gòu)的枚舉數(shù)據(jù)類型的第一和最后一個(gè)值,enum_type為枚舉數(shù)據(jù)類型標(biāo)識(shí)符??梢园瑤NUM_TO_DINT轉(zhuǎn)化功能的枚舉元素的數(shù)值。注意:你將會(huì)得知枚舉數(shù)據(jù)類型為系統(tǒng)數(shù)據(jù)類型。枚舉數(shù)據(jù)類型可以為一個(gè)結(jié)構(gòu)的部分,意味著在用戶定義的數(shù)據(jù)結(jié)構(gòu)
40、中可以在任意的低級(jí)別中被找到。1.4.2.6派生的數(shù)據(jù)類型STRUCT(結(jié)構(gòu))派生的數(shù)據(jù)類型STRUCT,或者結(jié)構(gòu)包括TYPE/END_TYPE結(jié)構(gòu)的固定數(shù)量的組件。這些組件的數(shù)據(jù)類型可以變化:TYPE標(biāo)識(shí)符:STRUCT數(shù)據(jù)類型聲明;END_TYPE下列為數(shù)據(jù)類型:基礎(chǔ)數(shù)據(jù)類型之前聲明過的UDT系統(tǒng)數(shù)據(jù)類型TO數(shù)據(jù)類型ARRAY數(shù)據(jù)類型聲明你可以選擇給組件賦初始值。繼續(xù)關(guān)于變量初始值或數(shù)據(jù)類型(見107頁(yè)變量或數(shù)據(jù)類型的初始值)注意:下列數(shù)據(jù)聲明不可以在組件聲明中直接使用STRUCT數(shù)據(jù)類型聲明枚舉數(shù)據(jù)類型聲明解決方案:用之前提到的聲明在組件聲明中預(yù)先聲明UDT(用戶定義數(shù)據(jù)類型)這允許嵌套
41、STRUCT數(shù)據(jù)類型同樣可能會(huì)發(fā)現(xiàn)STRUCT數(shù)據(jù)類型為系統(tǒng)數(shù)據(jù)類型這個(gè)例子說了了一個(gè)UDT是如何定義的,在變量聲明中又是如何使用的這種數(shù)據(jù)類型1.4.3技術(shù)目標(biāo)數(shù)據(jù)類型1.4.3.1技術(shù)目標(biāo)數(shù)據(jù)類型的描述可以用技術(shù)目標(biāo)來聲明變量。下表給出了可用的技術(shù)目標(biāo)的數(shù)據(jù)類型。例如,可以用數(shù)據(jù)類型posaxis來聲明一個(gè)變量,然后指配一個(gè)是適合的位置軸??梢酝ㄟ^結(jié)構(gòu)訪問技術(shù)目標(biāo)的元素。1.4.3.2軸屬性的繼承軸的繼承聲明所有的數(shù)據(jù)類型,系統(tǒng)變量和TO driveAxis的功能都全部包含在TO positionAxis中。同樣,位置軸頁(yè)包含在TO followingAxis中,下列軸是在TO pathA
42、xis中,有以下影響:如果一個(gè)功能或功能塊,除了driveAxis數(shù)據(jù)類型的輸入?yún)?shù)之外,調(diào)用時(shí)你可以使用position axis或者following axis或 path axis。如果有一個(gè)功能或功能塊,除了posAxis數(shù)據(jù)類型的輸入?yún)?shù)之外,調(diào)用時(shí)你可以使用following axis或 path axis。1.4.3.3技術(shù)目標(biāo)數(shù)據(jù)類型的例子以下,你將看見可選的技術(shù)目標(biāo)數(shù)據(jù)類型(你將在SIMOTION基本功能功能手冊(cè)中找到強(qiáng)制使用TO數(shù)據(jù)類型的變量)的變量使用。第二個(gè)例子介紹了無需使用TO數(shù)據(jù)類型的變量的替代方法。TO功能將被用為在程序的主要部分啟用一個(gè)軸,因此軸能定位。在定位操
43、作結(jié)束后,現(xiàn)行的軸的位置將使用結(jié)構(gòu)訪問來進(jìn)行記錄。第一個(gè)例子使用了TO數(shù)據(jù)類型的變量來演示用途。第二個(gè)例子未使用TO數(shù)據(jù)類型的變量。你將在SIMOTION運(yùn)動(dòng)控制功能描述中招待技術(shù)目標(biāo)的組態(tài)和配置細(xì)節(jié)。1.4.4系統(tǒng)數(shù)據(jù)類型有很多可用的喜悅數(shù)據(jù)類型,無需預(yù)先聲明就可以使用。每個(gè)導(dǎo)入的技術(shù)包提供了一庫(kù)的系統(tǒng)數(shù)據(jù)類型。額外的系統(tǒng)數(shù)據(jù)類型可以找到在普通標(biāo)準(zhǔn)功能中的參數(shù)(見SIMOTION基本功能功能手冊(cè))在普通標(biāo)準(zhǔn)功能模塊中的參數(shù)(見SIMOTION基本功能功能手冊(cè))在SIMOTION設(shè)備的系統(tǒng)變量中(見相關(guān)的參數(shù)手冊(cè))在SIMOTION設(shè)備的系統(tǒng)功能參數(shù)中(見相關(guān)的參數(shù)手冊(cè))在技術(shù)目標(biāo)的系統(tǒng)變量和
44、組態(tài)(見相關(guān)的參數(shù)手冊(cè))在技術(shù)目標(biāo)的系統(tǒng)功能參數(shù)中(見相關(guān)的參數(shù)手冊(cè))1.5變量聲明一個(gè)變量定義了可在ST源文件中使用的變量?jī)?nèi)容的數(shù)據(jù)項(xiàng)。一個(gè)變量包括一個(gè)可以自由選擇的標(biāo)識(shí)符(如myVar1))和一個(gè)數(shù)據(jù)類型(如BOOL)。預(yù)留的標(biāo)識(shí)符(見75頁(yè)預(yù)留標(biāo)識(shí)符)不能作為標(biāo)識(shí)符使用。1.5.1變量聲明的語(yǔ)法變量通常是根據(jù)源文件聲明部分的相同模式來創(chuàng)建的。通過合適的關(guān)鍵詞來開始一個(gè)聲明塊(如 VAR, VAR_GLOBAL - 見106頁(yè)所有變量聲明的概述遵循實(shí)際的變量聲明(見圖表),也可以如你所愿盡可能的創(chuàng)建,順序是任意的。以END_VAR來結(jié)束一個(gè)聲明塊你可以創(chuàng)建更多的聲明塊(要有同樣的關(guān)鍵詞)注
45、意變量的名稱必須是一個(gè)標(biāo)識(shí)符,如,只能包含字母,數(shù)字或下劃線,但是不能包含特殊字符。允許作為數(shù)據(jù)類型的下列項(xiàng):基礎(chǔ)數(shù)據(jù)類型UDT(用戶定義數(shù)據(jù)類型)系統(tǒng)數(shù)據(jù)類型TO數(shù)據(jù)類型ARRAY數(shù)據(jù)類型聲明功能塊的設(shè)計(jì) 可以在聲明語(yǔ)句中直接給變量賦初始值,這叫做初始化從格式來的派生如下:常量聲明(常量必須有初始值,見111頁(yè)常量)過程圖像訪問(見106頁(yè)所有變量聲明的概述)不需要一個(gè)變量聲明作為絕對(duì)過程圖像訪問不允許初始化作為符號(hào)過程訪問控制1.5.2所有變量聲明的概述在變量和參數(shù)聲明中聲明名稱、數(shù)據(jù)類型和變量的初始值。在下列源文件的聲明部分執(zhí)行這些聲明:interface部分執(zhí)行部分POU(程序、功能、
46、功能塊、表達(dá)式)源文件部分也決定了你可以聲明的變量和范圍欲知源文件部分的更多信息,參見86頁(yè)的ST源文件結(jié)構(gòu)個(gè)169頁(yè)的源文件部分。關(guān)鍵詞意義聲明VAR暫時(shí)或靜態(tài)變量的聲明,見184頁(yè)變量模型任意POUVAR_GLOBAL單元變量聲明,見184頁(yè)變量模型interface部分implementation部分VAR_IN_OUT輸入/出參數(shù)的變量聲明;POU直接訪問變量(使用參考),也可直接修改。見148頁(yè)定義功能,149頁(yè)定義功能塊功能功能塊表達(dá)式VAR_INPUT輸入?yún)?shù)的變量聲明;數(shù)值是外部賦予,不能在POU里面改變這個(gè)數(shù)值。見148頁(yè)定義功能,149頁(yè)定義功能塊功能功能塊表達(dá)式VAR-O
47、UTPUT輸出參數(shù)的變量聲明;數(shù)值是從功能塊傳遞的。見148頁(yè)定義功能,149頁(yè)定義功能塊功能塊VAR_TEMP臨時(shí)變量的聲明見184頁(yè)變量模型程序功能塊RETAIN保留變量的聲明見184頁(yè)的變量模型僅作為補(bǔ)充interface和implementation部分的VAR_GLOBAL CONSTANT常量的聲明,見111頁(yè)常量?jī)H作為補(bǔ)充在FB,FC或程序中的VAR在interface或implementation部分的VAR_GLOBAL1.5.3變量或數(shù)據(jù)類型的初始值在聲明中指定初始值給變量或數(shù)據(jù)類型是可選的(見圖表語(yǔ)法:變量聲明或語(yǔ)法:用戶定義數(shù)據(jù)類型)如果在變量聲明中沒有特別指定初始值,
48、編譯程序自動(dòng)給變量指定在數(shù)據(jù)類型聲明中聲明的初始值如果在數(shù)據(jù)類型聲明中也沒有特別指定初始值,編譯程序自動(dòng)給變量或數(shù)據(jù)類型指定值為0。例外:時(shí)間數(shù)據(jù)類型:初始值枚舉數(shù)據(jù)類型:1.枚舉值預(yù)先給變量或用戶定義的數(shù)據(jù)類型指定初始值在數(shù)據(jù)類型聲明之后(見語(yǔ)法圖表:變量初始化)根據(jù)語(yǔ)法圖表:常量表達(dá)式來給基礎(chǔ)數(shù)據(jù)類型(或從基礎(chǔ)數(shù)據(jù)類型派生的數(shù)據(jù)類型)賦常量表達(dá)式根據(jù)語(yǔ)法圖:域初始化給域(陣列)指定域初始化列表根據(jù)語(yǔ)法圖:結(jié)構(gòu)初始化列表來給單獨(dú)的結(jié)構(gòu)成分來指定結(jié)構(gòu)初始化列表給枚舉數(shù)據(jù)類型指定枚舉元素 在編譯程序時(shí)給變量賦的初始值是從常量表達(dá)式計(jì)算得知的。見語(yǔ)法圖。欲知更多常量表達(dá)式的信息,見常量表達(dá)式的語(yǔ)法
49、圖。注意一個(gè)變量列表(a1, a2, a3, . : INT := . )可以是由普通數(shù)值初始化的。在這種情況下,不需要單獨(dú)初始化變量(a1 : INT := . ; a2 : INT := . ; etc.)技術(shù)目標(biāo)(TO)數(shù)據(jù)類型的變量由編輯器用TO#NIL初始化。任務(wù)對(duì)變量初始化的影響在SIMOTION基本功能功能手冊(cè)中描述。3.5.4常量常量是帶固定值的數(shù)據(jù),在程序運(yùn)行時(shí)不能更改固定數(shù)值。常量的聲明方式與變量一樣。本地常量的POU聲明部分(見語(yǔ)法圖:POU中的常量塊和語(yǔ)法圖:常量聲明)在ST源文件單元常量是interface或implementation部分(見語(yǔ)法圖:在interfa
50、ce或implementation部分的單元常量和語(yǔ)法圖:常量聲明)。可以在interface部分導(dǎo)入單元常量到其他ST源文件(見184頁(yè)常量模型)源文件部分也決定常量聲明的范圍。賦給常量的值是通過在編譯時(shí)計(jì)算常量表達(dá)式得出的。欲知更多常量表達(dá)式的語(yǔ)法圖和信息,見常量表達(dá)式的語(yǔ)法圖。1.6賦值和表達(dá)式你已經(jīng)用字符串來創(chuàng)建數(shù)值指定,也許是一個(gè)作為部分例子的語(yǔ)句(見87頁(yè)語(yǔ)句示范表),或者是在源文件聲明部分初始化變量的時(shí)候。然而這只是對(duì)可用的公式化指定數(shù)值的小范圍的選擇。手冊(cè)的本章節(jié)通過使用大量的例子詳細(xì)描述了這個(gè)重要的話題。注意:在算法和邏輯表達(dá)式中,結(jié)果通常是通過最大數(shù)值格式化表達(dá)式和轉(zhuǎn)化數(shù)據(jù)
51、類型所得出的。隱式轉(zhuǎn)化在數(shù)值指定時(shí)不總是可行的。欲知更多錯(cuò)誤源文件和解決方法的信息,見SIMOTION基本功能功能手冊(cè)。1.6.1賦值1.6.1.1賦值的語(yǔ)法圖 使用指定的數(shù)值來給變量數(shù)值指定。重寫之前的數(shù)值。在一個(gè)數(shù)字可以正確指定前,在聲明部分必須聲明一個(gè)變量(見105頁(yè)變量聲明語(yǔ)法圖)如下面的語(yǔ)法圖所示,表達(dá)式位于右側(cè)。 結(jié)果保存在變量中,變量的名稱列于左側(cè)。所有的目標(biāo)變量在圖表中顯示下列包含了左側(cè)的數(shù)值指定的解釋和例子:基礎(chǔ)數(shù)據(jù)類型的變量數(shù)值指定(114頁(yè))派生的枚舉數(shù)據(jù)類型的變量數(shù)值指定(117頁(yè))派生的陣列數(shù)據(jù)類型的變量數(shù)值指定(118頁(yè))派生的結(jié)構(gòu)數(shù)據(jù)類型的變量數(shù)值指定(118頁(yè))
52、絕對(duì)的PI訪問的數(shù)值指定(給過程圖像尋址),見221頁(yè)絕對(duì)PI訪問1.6.1.2基礎(chǔ)數(shù)據(jù)類型的變量的數(shù)值指定當(dāng)下列情況之一滿足時(shí),基礎(chǔ)數(shù)據(jù)類型(90頁(yè))的表達(dá)式可以指定給一個(gè)變量:表達(dá)式和目標(biāo)變量是一樣的數(shù)據(jù)類型注意關(guān)于字符串?dāng)?shù)據(jù)類型(114頁(yè))的下列信息表達(dá)式的數(shù)據(jù)類型可以隱式轉(zhuǎn)化為目標(biāo)變量的數(shù)據(jù)類型1.6.1.3串基礎(chǔ)數(shù)據(jù)類型的變量數(shù)值指定串?dāng)?shù)據(jù)類型的變量之間的數(shù)值指定不同長(zhǎng)度的串基礎(chǔ)數(shù)據(jù)類型的變量之間的數(shù)值指定沒有限制,如果聲明的目標(biāo)變量的長(zhǎng)度要短于現(xiàn)在指定的字符串的長(zhǎng)度,字符串被截取成目標(biāo)變量的長(zhǎng)度。例外:in/out數(shù)值指定的應(yīng)用(參數(shù)轉(zhuǎn)化為in/out參數(shù)):指定變量的聲明長(zhǎng)度必須長(zhǎng)于或者等同于目標(biāo)變量(正式in/out參數(shù))的聲明
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣西桂林航天工業(yè)學(xué)院招聘高層次人才10人備考題庫(kù)及完整答案詳解1套
- 2026內(nèi)蒙古鄂爾多斯市達(dá)拉特旗工人文化宮招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026云南西雙版納國(guó)有資本投資運(yùn)營(yíng)集團(tuán)有限公司招聘1人備考題庫(kù)參考答案詳解
- 2026恒豐銀行濟(jì)南分行招聘24人備考題庫(kù)及一套答案詳解
- 2025年合肥市檔案館公開招聘政府購(gòu)買服務(wù)崗位人員2名備考題庫(kù)及完整答案詳解
- 2025清華大學(xué)萬科公共衛(wèi)生與健康學(xué)院張敏教授課題組博士后招聘?jìng)淇碱}庫(kù)含答案詳解
- 2025四川愛眾發(fā)展集團(tuán)有限公司市場(chǎng)化選聘中層管理儲(chǔ)備人才2人備考題庫(kù)帶答案詳解
- 2026年保定市滿城區(qū)選聘高中教師60人宣講備考題庫(kù)完整參考答案詳解
- 2026江蘇南京大學(xué)XZ2025-442現(xiàn)代工程與應(yīng)用科學(xué)學(xué)院科研人員招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 2026四川成都文化旅游發(fā)展集團(tuán)有限責(zé)任公司下屬企業(yè)招聘管理會(huì)計(jì)崗等崗位2人備考題庫(kù)完整參考答案詳解
- 餐廚收運(yùn)駕駛員安全培訓(xùn)課件
- 村委會(huì)工作人員招聘面試常見問題及解答
- 學(xué)校6S管理培訓(xùn)
- 中小學(xué)英語(yǔ)銜接教學(xué)策略
- DB15-T 4031-2025 建設(shè)項(xiàng)目水資源論證表編制導(dǎo)則
- 抖店客服培訓(xùn)知識(shí)課件
- 2025年國(guó)家開放大學(xué)(電大)《政治學(xué)原理》期末考試備考題庫(kù)及答案解析
- 《北京市科學(xué)技術(shù)獎(jiǎng)勵(lì)辦法》及其實(shí)施細(xì)則的解讀
- 2025年全國(guó)中考真題匯編專題11:議論文閱讀【含答案】
- 婦幼保健員考試試題題庫(kù)及答案
- 靈活用工結(jié)算對(duì)人力資源服務(wù)行業(yè)的影響及發(fā)展策略2025
評(píng)論
0/150
提交評(píng)論