




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、申明本手冊內容,包括文字、圖表、標志、標識、商標、型號、軟件程序、版面設計等,均受中民著作權法、中民商標法、中民專利法及與之適用的國際公約中有關著作權、商標權、專利權或其他所法律的保護,為北京和利時系統工程專屬所有或持有。本手冊商業用戶閱讀、,在未得到北京和利時系統工程特別的情況下,無論出于何種和目的,均不得用任何電子或機械方法,以和傳遞本手冊的內容。否則本公司將依法法律責任。我們已核對本手冊中的內容、圖表與所述指令相符,但誤差,并不能保證完全一致。同時,我們會定期對手冊的內容、圖表進行檢查、修改和維護,恕不另行通知。本手冊的說明、圖表、簡單程序及應用實例完全出于舉例說明的目的,我們對其都進行
2、了測試,但因為軟件版本的更新和各種應用有許多未知的變化和要求,我們不承擔根據本手冊或本手冊中的實例而的實際應用產生的責任。北京和利時系統工程保留全部權利。20072012 Copyright Hollysys HollySys、和利時、LK的字樣和徽標均為北京和利時系統工程有限公司的商標或商標。Microsoft、Windows 和 WindowsNT 是微軟公司在美國和/或其他標。分支機構的商標或商手冊中涉及到的其他商標或商標屬于他們各自的擁有者。前 言LK 大型可編程器(PLC)是和利時公司在總結十五年的系統設計和幾千套工程項目實施經驗基礎上推出的適用于中、高性能領域的,包括多種 CPU
3、模塊、通口模塊、I/O 模塊及特殊功能模塊等。同時,和利時公司還推出了功能強大的 PowerPro 編程軟件及豐富的指令系統。LK 大型可編程器(PLC)以先進的計算機技術、技術、通信技術和信號處理技術為基礎,可為不同工業領域的用戶提供個性化的解決方案,適用于邏輯、順序、過程、傳動和運動等領域。包含內容LK 大型可編程器(PLC)指令手冊是和利時公司對其 LK 大型 PLC 包含的所有指令詳細介紹的技術手冊,主要包含以下信息:¾指令系統概述¾操作數¾數據類型¾指令詳細介紹讀者本指令手冊配合軟件手冊與硬件手于有一定 PLC 背景知識、掌握了 PowerPr
4、o軟件使用方法的工程師、編程。使用本手冊,需對 LK 大型 PLC 有一定的了解。適用范圍本手冊僅適用于以下版本編程軟件。由于 PowerPro V4.3.1B 軟件在功能上做了較大調整, 因此,本手冊中部分擴展指令向下不兼容。PowerPro V4.3.1B 中文版PowerPro V4.3.1B 英文版如何使用本手冊如果已經熟練掌握 PowerPro 編程軟件,直接通過目錄查找需要的指令。如果剛剛開始學習 PowerPro 編程軟件,建議閱讀“第 1 章 LK 大型 PLC 指令概述”。如果對 PLC 所使用的操作數與數據類型不是很了解,建議閱讀第 2、3 章。附錄 包含指令速查表、IEC
5、 標準指令表、指令關聯速查表。相關手冊LK 大型可編程LK 大型可編程器硬件手冊器編程手冊目 錄目 錄I第 1 章 指令系統概述11.1 指令的定義與分類11.2 指令庫的定義與分類11.2.11.2.2基本指令庫2擴展指令庫51.3 指令庫的添加51.4 指令系統使用注意事項6第 2 章 操作數72.12.22.32.4常量7變量8地址9函數返回值10第 3 章 數據類型113.1 標準數據類型113.2 自定義數據類型123.2.13.2.23.2.33.2.4第 4 章數組12指針14枚舉14結構15基本指令164.1 算術運算指令164.1.14.1.24.1.34.1.44.1.5A
6、DD加法指令16MUL乘法指令17SUB減法指令17DIV除法指令18MOD取余指令184.2 賦值指令194.3 邏輯運算指令204.3.14.3.24.3.34.3.4AND與指令20OR或指令20XOR異或指令21NOT取非指令224.4 移位指令22- i -4.4.14.4.24.4.34.4.4SHL左移指令22SHR右移指令23ROL循環左移指令23ROR循環右移指令244.5 選擇指令254.5.14.5.24.5.34.5.44.5.5SEL二選一指令25MAX取最大值指令25MIN取最小值指令26LIMIT極限值指令27MUX多選一指令274.6 比較指令284.6.14.
7、6.24.6.34.6.44.6.54.6.6GT大于指令28LT小于指令28GE大于等于指令29LE小于等于指令30EQ等于指令30NE不等于指令314.7 數據類型轉換指令314.7.14.7.24.7.34.7.44.7.54.7.64.7.74.7.84.7.94.7.104.7.114.7.124.7.134.7.144.7.154.7.164.7.174.8 初等數4.8.1 4.8.2 4.8.3 4.8.44.8.5BOOL_TO_<TYPE>布爾類型轉換指令33BYTE_TO_<TYPE>字節類型轉換指令34WORD_TO_<TYPE>字令
8、36DWORD_TO_<TYPE>雙字類型轉換指令38SINT_TO_<TYPE>單整型轉換指令39USINT_TO_<TYPE>無符號單整型轉換指令40INT_TO_<TYPE>整數類型轉換指令40UINT_TO_<TYPE>無符號整數類型轉換指令41DINT_TO_<TYPE>雙整數類型轉換指令42UDINT_TO_<TYPE>無符號長整數類型轉換指令43REAL_TO_<TYPE>實數類型轉換指令44TIME_TO_<TYPE>時間類型轉換指令45DATE_TO_<TYPE&
9、gt;日期類型轉換指令46DT_TO_<TYPE>日期時間類型轉換指令47TOD_TO_<TYPE>時間類型轉換指令48STRING_TO_<TYPE>字符類型轉換指令49TRUNC截短轉換指令49算指令50ABS絕對值指令50SQRT平方根指令51LN自然對數指令51LOG常用對數指令52EXP指數指令52- ii -4.8.64.8.74.8.84.8.94.8.104.8.114.8.12SIN正弦指令53COS余弦指令53TAN正切指令54ASIN反正弦指令54ACOS反余弦指令55ATAN反正切指令55EXPT冪指令564.9 地址運算指令564.
10、9.14.9.24.9.34.9.44.9.5ADR取地址指令56取地址內容指令57BITADR位地址指令58INDEXOF索引指令58SIZEOF數據類型大小指令594.104.114.12調用指令59初始化操作指令59字符串處理指令(Standard.lib)604.12.14.12.24.12.34.12.44.12.54.12.64.12.74.12.84.12.9LEN取字符串長度指令60LEFT左邊取字符串指令61RIGHT右邊取字符串指令61MID中間取字符串指令. 62CONCAT合并字符串指令63INSERT字符串指令63DELETE刪除字符指令64REPLACE替換字符串指
11、令64FIND查找字符串指令654.13 庫版本信息檢查指令(Util.lib)654.14 檢查指令(HS_Check.lib)664.14.14.14.24.14.34.14.44.14.54.14.64.14.7CheckBounds數組邊界檢查指令66CheckDivByte字節型除數為零檢查指令67CheckDivWord字型除數為零檢查指令68CheckDivDWord雙字型除數為零檢查指令68CheckDivReal實型除數為零檢查指令68CheckRangeSigned整型邊界檢查指令68CheckRangeUnsigned無符號整型邊界檢查指令704.15 BCD 碼轉換指令
12、(Util.lib)704.15.14.15.2BCD_TO_INTBCD 碼轉整型指令70INT_TO_BCD整型轉 BCD 碼指令714.16 位/字節操作指令(Util.lib)724.16.14.16.24.16.3EXTRACT位提取指令72PACK位整合指令73PUTBIT位賦值指令74- iii -4.16.4UNPACK位拆分744.17 高等數算指令(Util.lib)764.17.14.17.24.17.34.17.44.17.54.184.18.14.18.24.18.3DERIVATIVE微分76INTEGRAL. 77STATISTICS_INT整型統計78STATI
13、STICS_REAL實型統計80VARIANCE平方偏差81器指令(Util.lib)82PD比例微分PID比例器82微分器84PID_FIXCYCLE比例微分器864.19 信號發生器指令(Util.lib)884.19.14.19.24.20 函數4.20.1 4.20.2 4.20.3BLINK脈沖信號發生器88GEN典型周期信號發生器89器指令(Util.lib)91CHARCURVE特征曲線91RAMP_INT整型限速92RAMP_REAL實型限速944.21 模擬量處理指令(Util.lib)944.21.14.21.2HYSTERESIS滯后.LIMITALARM上下限. 94.
14、 954.22 雙穩態指令(Standard.lib)974.22.14.22.2SR置位優先雙穩態器97RS復位優先雙穩態器974.23 觸發器指令(Standard.lib)984.23.14.23.2R_TRIG上升沿檢測觸發器98F_TRIG下降沿檢測觸發器994.24 計數器(Standard.lib)1004.24.14.24.24.24.3CTU遞增計數器100CTD遞減計數器101CTUD遞增遞減計數器1024.25 定時器(Standard.lib)1034.25.14.25.24.25.34.25.4第 5 章TP普通定時器103TON通電延時定時器104TOF斷電延時定時
15、器106RTC實時時鐘107擴展指令1085.1 模擬量應用指令 HS_AnalogConvert.lib1085.1.15.1.2HS_HEX_ENGIN普通 AI 模塊測量數據轉工程量108HS_ENGIN_HEX工程量轉普通 AO 模塊輸出數據109- iv -5.2 數據傳送指令 HS_Move.lib1115.2.1HS_MOVE數據傳送指令1115.3 通訊指令 HS_Communication.Lib1135.3.15.3.25.3.35.3.4COM1 口通訊指令113COM2 口通訊指令129以太網通訊指令140站間通訊指令1455.4 SOE 指令庫 HS_SOE.Lib1
16、505.4.1DP SOE 指令1505.5 預置輸出指令 HS_ScheduledTime.Lib1585.5.1HS_ScheduledTime預置輸出指令1585.6 實時時鐘指令 HS_RTC.Lib1605.6.15.6.2HS_Set_RTC設置實時時鐘160HS_Get_RTC實時時鐘1615.7 診斷指令庫 HS_Diagnosis.Lib1635.7.15.7.25.7.35.7.45.7.55.7.65.7.75.7.85.7.95.7.105.7.115.7.125.7.135.7.14HS_GetLoadCPU 負荷診斷指令163HS_GetVersion版本號診斷指令
17、165HS_SymbolTableDiag符號表診斷指令166HS_SDRAM_DiagSDRAM 實際使用量診斷指令167HS_FlashDiagFlash 使用. 168HS_WorkModeDiag工作模式診斷指令169HS_ WatchdogDiag看門狗診斷指令170HS_IEkDiag任務運行狀況診斷指令171HS_CPU_ReduDiag冗余狀態診斷指令173HS_BatteryAlarm電池電量狀況診斷指令174HS_LocalBusSlaveDiag本地總線診斷指令175HS_DPMasterDiagDP 主站診斷指令177HS_DPSlaveStdDiagDP 從站標準診斷
18、指令178HS_DPSlaveAlarmDP 從站用戶擴展診斷指令1795.8 修改 IP 地址功能庫 HS_SetIPAddress.Lib1835.8.1HS_SetIPAddress修改 IP 地址指令1845.9 PID 調節器指令庫 HS_PIDController.Lib1855.9.1HS_PIDPID 調節器功能塊1855.10 LK850 量程轉換指令庫 HS_LK850_Convert.Lib1905.10.15.10.2HS_LK850_AILK850 模擬輸入量程轉換功能塊190HS_LK850_AOLK850 模擬輸出量程轉換指令1925.11 時間相關指令庫 HS_
19、Timer.Lib1945.11.1HS_TONR保持型通電延時定時器1945.12 LK620 輸入輸出指令庫1965.12.1HS_LK620_IOLK620 輸入輸出指令196- v -附錄200Ø 1、LK 指令速查表200Ø 2、IEC 標準指令表204Ø 3、主控型號的高低順序及其與 POWERPRO V4 的適用關系206- vi -第1章指令系統概述和利時公司 LK 大型 PLC 為用戶提供了豐富的指令,這些指令均可通過 LK 大型 PLC 的編程軟件 PowerPro 進行調用,操作簡單,使用方便。本手冊將詳細講述 LK 大型 PLC 指令(簡稱
20、 LK 指令)。1.1指令的定義與分類在可編程器中,使 CPU 完成某種操作或實現某種功能令及多個命令的組合稱為指令,指令的集合稱為指令系統。指令系統是可編程程序設計的基礎。器硬件和軟件的橋梁,是可編程器PowerPro 提供了豐富的指令,按照功能不同可分為轉換指令、比較指令、類型轉換指令、邏輯運算指令、模擬量應用等類型。為了便于理解和記憶,我們把這些類型分為兩大類,一類是基本指令,包括全部 IEC 標準規定指令、高等數算指令等,另一類是擴展指令,包括模擬量應用指令、數據傳送指令、通訊指令等。擴展指令都是通過功能塊方式實現的,而且對應庫的名字都是以“HS”開頭的,具體見附錄。LK 指令在編程軟
21、件中有函數和功能塊兩種實現方式。函數和功能塊都是 PowerPro 軟件的程序組織單元,都是預先編好的、實現程序,功能塊輸出可以是一個或多個結果,每一個功能塊實例都有一個相關的標識符(即實例名稱),函數則不需要標識符,而且只有一個輸出結果(即函數的返回值),函數和功能塊的具體概念可以參考LK 大型可編程器編程手冊。“附錄 LK 指令速查表”中注明了指令的實現方式,FUN 表明指令是以函數方式實現,FB 則表明指令是以功能塊方式實現的。1.2指令庫的定義與分類編寫 PLC 程序的過程中,經常會一些有庫指令,如字符串處理指令、觸發器指令、計數器指令、PID器等等。把這些具有相關功能的指令集合起來進
22、行,建立專門的指令庫。指令庫是 LK 大型 PLC 指令代碼的集合,所有的庫都對應有庫文件(庫名.lib),調用某個庫指令,必需載入相應的庫文件。按照庫中指令代碼功能不同將其分為基本指令庫、擴展指令庫兩類:¾基本指令庫:指基本指令的集合。- 1 -提示:¾以函數方式實現的指令,在使用的時候都無需。¾以功能塊方式實現的指令,在使用的時候都需實例名。¾在LK 大型 PLC 指令系統中有些指令需要先添加其所對應的庫,才能被調用,還有部分指令沒有封裝在庫中,可以直接被調用,在附錄中列出各個指令所在庫。¾創建工程時,Standard.lib(標準庫)是自
23、動添加到庫管理器之中,其它庫在使用時需要用戶手動 添加。¾擴展指令庫:指擴展指令的集合,其庫名是以“HS”開頭。按照庫中指令執行代碼所在位置的不同,指令庫又可分為兩類:¾第一類:PowerPro 內部指令庫。指令執行代碼存在于庫文件之中,可以使用 PowerPro軟件打開庫文件,對指令的執行代碼進行修改,用戶也可以下裝到 PLC 之中,占用用戶程序空間較大。制作內部庫。當程序¾第二類:PowerPro 外部指令庫。指令執行代碼已經存在于 PLC 底層系統之中,用戶無法修改此類庫所包含的執行代碼。當程序下裝到 PLC 之中,占用用戶程序空間較少。1.2.1基本指令庫
24、標準指令庫 Standard.libStandard.lib 屬于 PowerPro 外部庫,在工程建立時自動添加,無需用戶再次添加,包含的指令如圖 1-2-1 所示。圖 1-2-1該庫包含的 LK 指令的含義如表 1-2-1 所示。表 1-2-1- 2 -雙穩態指令(Bistable Function Blocks)計數器(Counter)RS(復位雙穩態器) SR(置位雙穩態器)CTD(遞減計數器) CTU(遞增計數器) CTUD(遞增遞減計數器)字符串指令(String Function)定時器(Timer)提示:Ø 使用LK 指令時,必須添加相關的庫文件(庫名.lib)。
25、216; PowerPro 內部指令庫一經添加,即使不調用其中的指令,也會占用用戶程序空間,因此在實際編程過程中,建議只添加需要的庫。應用指令庫 Util.libUtil.lib 屬于PowerPro 內部開放指令庫,使用時需用戶載入。Util.lib 包含的LK 指令如圖1-2-2所示。圖 1-2-2 應用指令庫Util.lib該庫包含的 LK 指令的含義如表 1-2-2 所示。表 1-2-2- 3 -模擬量應用指令BCD 碼轉換指令HYSTERESIS(滯后)LIMITALARM(上下限)BCD_TO_INT(BCD 碼轉整型)INT_TO_BCD(整型轉 BCD 碼)PID器指令高等數算
26、指令P(比例器) PD(比例微分器) PID(比例微分器) PID_FIXCYCLE(比例微分器,周期固定)DERIVATIVE(微分) INTEGRAL()STATISTICS_INT(整型統計) STATISTICS_REAL(實型統計) VARIANCE(平方偏差)位轉換指令函數器指令EXTRACT(位提取) PACK(位整合) PUTBIT(位賦值) UNPACK(位拆分)CHARCURVE(特征曲線) RAMP_INT(整型限速) RAMP_REAL(實型限速)信號發生器指令庫版本查看指令BLINK(脈沖信號發生器) GEN(典型周期信號發生器)Version_Util(庫版本查看)
27、CONCAT(合并字符串指令) DELETE(刪除字符串指令) FIND(查找字符串指令) INSERT(字符串指令) LEFT(左邊取字符串指令) LEN(取字符串長度指令) MID(中間取字符串指令) REPLACE(替換字符串指令) RIGHT(右邊取字符串指令)RTC(實時時鐘) TOF(斷電延時定時器) TON(通電延時定時器) TP(普通定時器)觸發器(Trigger)F_TRIG(下降沿檢測觸發器) R_TRIG(上升沿檢測觸發器)系統指令庫 SysLibCallBack.libSysLibCallback.lib 屬于 PowerPro 外部庫,其包含的 LK 指令分別如圖 1
28、-2-3 與圖 1-2-4 所示。圖 1-2-3 系統指令庫SysLibCallback.lib該庫中指令可實現以下功能:調用(SysCallbackRegister)解除調用(SysCallbackUnregistrer)檢查指令庫 HS_Check.libHS_Check.lib 屬于 PowerPro 內部開放庫,其包含的 LK 指令分別如圖 1-2-4 所示。圖 1-2-4 檢查庫指令該庫中指令可實現以下功能:Ø 被除數為零的檢查功能Ø 邊界檢查功能IEC 動作指令庫 Iecsfc.libIecsfc.lib 屬于 PowerPro 內部開放庫,其中只包含一個指令如
29、圖 1-2-5 所示。圖 1-2-5 IEC 動作指令該庫可實現以下功能:¾SFCActionControl:SFC 語言中 IEC 步關聯動作的- 4 -提示:在 SFC 編程語言中使用IEC 步,必須加入該庫,否則編譯提示錯誤,當IEC 步有關聯動作時,系統自動調用SFCActionControl 指令,IEC 步的具體使用方法參見軟件手冊。1.2.2擴展指令庫該庫包括模擬量應用庫 HS_AnalogConvert.lib、數據傳送庫 HS_Move.lib、通訊指令庫HS_Communication.lib、SOE 指令庫 HS_SOE.lib、預置輸出指令庫 HS_Sched
30、uledTime.lib、實時時鐘指令庫HS_RTC.lib、診斷指令庫HS_Diagnosis.Lib、修改IP 地址功能庫HS_SetIPAddress.Lib、PID 調節器指令庫 HS_PIDController.Lib、LK850 量程轉換庫 HS_LK850_Convert.Lib 和保持型定時器指令庫 HS_Timer.Lib,共 11 個。其中,模擬量應用庫 HS_AnalogConvert.lib 包含輸入數據轉工程量指令(HS_HEX_ENGIN)和工程量轉輸出數據(HS_ENGIN_HEX),數據傳送庫 HS_Move.lib 指令庫包含數據傳送指令(HS_MOVE),如
31、圖 1-2-6 所示。其他庫的具體信息參見第五章相關內容。指令庫HS_Move.libHS_AnalogConvert .libHS_Communication.lib圖 1-2-6 擴展指令1.3指令庫的添加使用庫時,需要保證相應的庫文件存在于如下目錄:“PowerPro 安裝目錄Library”。啟動 PowerPro,選擇“窗口/庫管理器”,打開“庫管理器”,點擊右鍵,選擇“添加庫”, 如圖 1-3-1 所示。圖 1-3-1 添加庫- 5 -如圖 1-3-2,選擇需要的庫文件,點擊“打開”,不論哪種庫只需要打開對應的*.lib 文件。圖 1-3-2 選擇需要的庫文件如圖 1-3-3,上面
32、選擇的庫被添加到列表中,該庫所包含的指令顯示在圖中鼠標位置。圖 1-3-3 添加到列表的庫1.4¾指令系統使用注意事項上升沿使能,是指每當使能端由低電平變為高電平并一直保持高電,執行指令的相關功能。而且,如果指令的輸入參數發生變化,只有使能端再次由低電平變為高電平并,才能生效。¾高電平使能,是指當使能端保持高電入參數發生變化,則可以實時生效。,執行指令的相關功能,并且如果指令的輸¾¾在使用數算指令時,若輸出數據定義的范圍小于運算結果,則丟失。若指令的實例名在 RETAIN(掉電保持)區,該指令的所有輸入/輸出變量都要占用 RETAIN 內存區,所以建議不
33、要在 RETAIN 內存區區空間不足。太多的實例,以免 RETAIN¾¾M 區的前 4000 個字節,即%MB0%MB3999,已具有掉電保持功能。在梯形圖(LD)編程環境下, 式。其不同在于,如果采用使能運算符與功能塊是兩種不同的指令調用方使能運算符調用指令,當使能端低電,相應的指令代碼被掃描,如果采用功能塊調用指令,不論使能端低電平或高電,相應指令代碼都會將使能端作為一個輸入值來掃描。- 6 -第2章操作數在可編程計的基礎。器中,指令系統是可編程器硬件和軟件的橋梁,是可編程器程序設與計算機的操作指令類似,可編程器指令的基本形式也是由操作碼和操作數組成。操作碼表示 CPU
34、 所要執行的操作類型和所要完成的操作功能。操作數表示 CPU 所要操作的對象和目的。常量、變量、地址和函數調用返回值都可以作為操作數。2.1常量布爾常量布爾常量只有兩個:邏輯值 TRUE 和 FALSE(也可表示為 1 和 0),TRUE 等價于 1,FALSE等價于 0。時鐘常量時鐘常量一般用來操作時鐘,由“T#”(或“t#”)加上“時鐘值”,時鐘值的包括天(d)、小時(h)、分(m)、秒(s)和毫秒(ms),它們的正確順序為 d、h、m、s、ms,如“T#12h38m16s”表示“12 小時 38 分 16 秒”。下面是正確的時鐘常量:¾¾¾T#18ms(*1
35、8 毫秒的一個時鐘常量*)T#100s12ms (*100 秒 12 毫秒的一個時鐘常量,高t#12h34m15s (*12 小時 34 分 15 秒的一個常量*)超限*)下面是錯誤的時鐘常量:¾¾¾t#5m68s 15ms t#4ms13d日期常量(*低不超限*)(*沒有 T# *) (*順序錯誤*)日期常量由“D#”(“d#”、“DATE#”或“date#”)加上“日期值”。例如:Ø DATE#2007-1-06Ø d#1980-09-22時間常量(*日期常量 2007 年 1 月 6 日*)(*日期常量 1980 年 9 月 22 日*)
36、時間常量用于時間,由“TOD#”(“tod#”、“TIME_OF_DAY#”或“time_of_day#”)加上“時間值”。時間值的格式為:小時:分鐘:秒(可以用實數形式輸入秒)。例如:Ø TOD#00:00:00Ø TIME_OF_DAY#15:36:30.123日期時間常量(*時間常量為 0 點 0 時 0 分*)(*時間常量為 15 點 36 分 30.123 秒*)日期常量和時間常量合并起來稱為日期時間常量,由“DT#”(“dt#”、“DATE_AND_TIME#”或“date_and_time#”)加上“日期時間值”。例如:¾¾DT#1980-
37、09-22-15:45:18(*日期時間常量為 1980 年 9 月 22 日 15 點 45 分 18 秒*)date_and_time#2001-03-09-00:00:00秒*)(*日期時間常量為 2001 年 3 月 9 日 0 點 0 分 0- 7 -數字常量數字常量的數值可以是二進制、十進制、八進制和十六進制。如果整數值不是十進制值, 可以用“進制”加符號“#”放在整數值前面來表示。十進制的 10 至 15 在十六進制中表示為 A 至 F。在數字中可以使用下劃線連字符。數字常量的數據類型可以是 BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDI
38、NT。默認情況下,不“較大”的數據類型作為“較小”的數據類型使用。比如,DWORD類型的常量不能簡單地當作 INT 類型使用,必須使用數據類型轉換指令進行轉換之后才可以使用。例如:¾¾¾¾142#1001_00118#6716#AE實數常量(*十進制數 14*)(*二進制數 1001_0011*) (*八進制數 67*)(*十六進制數 AE *)實數常量用十進制小數和指數來表示,遵循標準的科學計數法格式。實數常量的數據類型是 REAL。例如:Ø 7.4Ø 1.64e+009字符串常量(*實數 7.4*)(*實數 1.64e+009*)
39、字符串常量在兩個單引號之間,可以包含空格和特殊字符。例如:¾¾' Abby and Craig ' ':-)'(*字符串(*字符串:-)*)aig *)在字符串中,當在字符中出現以$開始的復合字符時,解釋為下面的形式:表 2-1-1 以$開始的復合字符串的含義2.2變量變量在 POU(Program Organization Unit)的變量表或者全局變量表中以下幾點:,使用中應注意¾¾¾¾變量名不能包含空格和特殊字符,不能多次,不能和關鍵字使用相同的名字。變量名不區分大小寫。(如:VAR1、Var1
40、和 var1 表示相同的變量)變量名識別下劃線。(如:“A_BCD”和“AB_CD”被認為是兩個不同的變量名) 變量名中不能有連續的 2 個下劃線。(如:“A_ _B”是錯誤的變量名)系統標志符 系統標志符是隱含的變量,它在每個特定系統中是不同的。使用命令“/關鍵- 8 -字符串代表含義$字符$單引號$L 或$l輸入行$N 或$n新行$P 或$p輸入頁$R 或$r換行$T 或$tTab 鍵字”打開輸入輔助框,選擇系統變量類別,這樣可以找到系統中可用的系統標志符。變量的語法二維數組的元素:<字段名>Index1, Index2結構變量:<結構名>.<變量名>功
41、能塊和程序變量:<實例名>.<變量名>¾¾¾變量的數據位在整型變量中,可以¾¾¾變量的每個數據位。數據位附加在變量的后面,變量與數據位之間用“圓點”分隔,數據位從 0 開始編號。可以變量數據位的數據類型包括:SINT、INT、DINT、USINT、UINT、UDINT、BYTE、WORD 和 DWORD。定義在 VAR_IN_OUT 數據區的變量,不能¾變量的數據位。例如:¾¾¾¾a : INT;(*定義整型變量 a*)b : BOOL; (*定義布爾變量 b*
42、).a.2 := b;(*將布爾變量 b 的值賦給整型變量 a 的第 2 位*)出錯處理:¾如果數據位大于變量數據位的寬度(比如上例中若 a.16 := b),則會給出下列出錯信息:Index '<n>' outside the valid range for variable '<var>'!因為整型變量的數據位的范圍是 015,a.16 超出了范圍。¾如果變量類型不信息:數據位(比如上例中若定義 a : REAL),則會給出下列出錯Invalid data type '<type>' f
43、or direct indexing因為實型變量不可以按位。2.3地址地址格式按照規定的地址格式顯示內存中的地址。格式為:%內存區范圍 數據格式 地址。例如:內存位置在 PowerPro 中,內存地址按照字節排列,從 0 開始,其大小與 PLC 型號有關。例如 M 區(中間區)地址定義如表 2-1-1。- 9 -地址格式對應地址%QX7.5輸出區的地址 7,第 6 位%IW4輸入區的地址 4,1 個字%QB7輸出區的地址 7,1 個字節%MD48中間區的地址 48,雙字內存區范圍數據格式I輸入區(Input)Q輸出區(Output)M中間區(Memory location)X單個位B字節(8
44、位)W字(16 位)D雙字(32 位)表 2-3-1 M 區地址定義舉例數據格式PowerPro 軟件中數據位, 如下面所示:格式以 M 區為例,其中 MSB 表示最高有效位,LSB 最低有效¾字節MSB7LSB0%MB300¾字MSB15LSB0%MW300雙字¾MSB31LSB0%MD1502.4函數返回值在 ST 語言中,調用函數的返回值可以直接作為操作數使用。例如:Result:= Fct(7) + 3;(*函數 Fct 的返回值加上 3,然后賦值給 Result *)。- 10 -%MB600%MB601%MB602%MB603%MB600%MB601%
45、 MB300地址字節定義字定義雙字定義0%MB0%MW0%MD01%MB12%MB2%MW13%MB34%MB4%MW2%MD15%MB56%MB6%MW37%MB74n%MB4n%MW2n%MDn4n+1%MB4n+14n+2%MB4n+2%MW2n+14n+3%MB4n+3第3章數據類型編程時可以使用標準數據類型和用戶自定義數據類型。數據類型用標識符來表示,規定了數據占用內存空間的大小及于其中的數據種類。標準數據類型包括布爾型數據、整型數據、實型數據、字符串型數據和時間型數據,可以使用 PowerPro 提供的數據類型轉換指令進行相互轉化。用戶自定義數據類型包括數組、指針、枚舉和結構。3.
46、1標準數據類型布爾型數據類型布爾型變量的標識符為 BOOL,其值為“TRUE”和“FALSE”(也可表示為“1”和“0”)。“TRUE”等價于“1”,“FALSE”等價于“0”。整型數據類型整型數據類型的標識符包括 BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT和 UDINT 等。每一種不同數據類型的取值范圍不同,整型數據類型的取值范圍如表 3-1-1。表 3-1-1 整數類型數據范圍和空間實型數據類型實型數據類型也稱為浮點型數據類型,用于表示有理數。實型數據類型的標識符為 REAL。REAL 型數據占用 32 位內存空間,即 4 個字節。字符串型數據類型字符
47、串型數據可以包含任意多個字符,其標識符為 STRING。在時所輸入的大小決定了變量所需要的內存空間,它是指字符串中字符的數量,可以用圓括號或方括號括起來。如- 11 -提示:當較長的數據類型轉換為較短的數據類型時,會丟失信息。類型標識符類型名稱數據下限數據上限空間BYTE字節型2558 BitWORD字型06553516 BitDWORD雙字型032BitSINT單整型-1281278 BitUSINT無符號單整型02558 BitINT整型-327683276716 BitUINT無符號整型06553516 BitDINT雙整型-2147483648214748364732 BitUDINT
48、無符號雙整型032 Bit果沒有給出大小說明,則缺省大小為 80 個字符。例如:str:STRING(35):='This is a String'(*一個包含 35 個字符的字符串*)注意:字符串變量的頭尾必須加單引號。時間型數據類型時間型數據類型用于處理時間,其標識符包括 TIME(縮寫為 T)、TIME_OF_DAY(縮寫為 TOD)、DATE(縮寫為 D)和 DATE_AND_TIME(縮寫為 DT)。TIME 表示一個時間值, TOD 表示當天的時間, DATE 表示當前日期,DT 表示當前日期和時間,為毫秒,初始值為 0。為毫秒,初始值為凌晨 0 點 0 分。為秒。
49、初始值是 1970 年 1 月 1 日。為秒。初始值是 1970 年 1 月 1 日凌晨 0 點 0 分。3.2自定義數據類型3.2.1數組一維、二維和三維數組屬于基本的數據類型。在 POU 的變量表或者全局變量表中,都可以數組。數組的標識符為 ARRAY。數組的語法<數組名>:ARRAY <L1>.<U1>,<L2>.<U2>,<L3>.<U3> OF <基本數據類型>L1、L2 和 L3 表示字段范圍的最小值,U1、U2 和 U3 表示字段范圍的最大值。字段范圍必須是整數。例如:Card_gam
50、e: ARRAY 1.13, 1.4 OF INT;(*定義一個整型的二維數組 Card_game*)數組的初始化在數組定義時,可以初始化數組中所有元素,也可以不進行初始化。舉例 1:數組的完全初始化Arr1:ARRAY 1.5 OF BYTE:= 1,2,3,4,5;Arr2:ARRAY 1.2,3.4 OF INT := 1,3(7) ;(*即 1,7,7,7 的縮寫形式*)Arr3:ARRAY 1.2,2.3,3.4 OF INT := 2(0),4(4),2,3; (*即 0,0,4,4,4,4,2,3 的縮寫形式*)舉例 2:結構數組的初始化TYPE STRUCT1:STRUCTp1
51、:int; p2:int; p3:dword;END_STRUCT END_ TYPEARRAY1.3 OF STRUCT1:=(p1:=1,p2:=10,p3:= 3),(p1:=2,p2:=0,p3:=2),(p1:=4,p2:=5,p3:=1);- 12 -舉例 3:數組的部分初始化Arr1:ARRAY 1.10 OF BYTE:= 1,2;對于那些沒有預先賦值的元素,按照基本數據類型的缺省初始值進行初始化。在此例中,元素3到10被初始化為 0。數組的在二維數組中數組元素,使用下列語法:<Field_Name>Index1,Index2例如:數組的:Card_game9,2提示:如果在工程中使用 CheckBounds 來定義函數,則可以自動進行數組越界錯誤檢查。該函數名的關鍵字必須是 CheckBounds,CheckBounds 的程序如圖 3-2-1 所示。¾圖 3-2-1 CheckBounds 的程序¾若工程中沒有上面所述的 CheckBounds 程序,在圖 3-2-2 的例子中,AB應該為 A10,從而超出了數組 A 的最大上界值 7,程序編譯時出錯。但因為工程中定義了上面的 CheckBounds 函數,所以執行圖 3-2-2 的程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小紅書美妝品牌賬號運營與美妝沙龍服務合同
- 礦山安全勞務派遣服務及責任保障合同
- 文化旅游融合發展補充協議
- 網紅炸雞品牌形象使用權許可合同
- 智能倉儲設備安裝與倉儲信息化升級服務合同
- 金融信貸資產證券化風險控制補充協議
- 創新型科技公司股權價值重估及調整合作協議
- 海外代購商品價格波動風險分擔合同
- 胃腸腫瘤病例多學科討論
- 腎絞痛的治療
- 農行超級柜臺業務知識考試題庫(含答案)
- 免疫治療免疫相關不良反應的處理PowerPoint-演示文稿
- 銷售拜訪流程培訓課件
- 研究生英語翻譯答案
- 小學生1-6年級成長檔案模板(絕對原創)
- GB 15607-2023涂裝作業安全規程粉末靜電噴涂工藝安全
- 創傷性胸腔積液查房
- 蘇州鄰里中心調研報告以及應用
- 手表買賣合同協議書
- 2023門面裝修合同范本
- 旅游接待計劃表
評論
0/150
提交評論