西門子: | 西門子代理商 |
西門子CPU: | 西門子plc |
德國: | 全新原裝 |
單價(jià): | 888.00元/臺 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 直轄市 上海 上海松江 |
有效期至: | 長期有效 |
發(fā)布時(shí)間: | 2023-12-13 16:11 |
最后更新: | 2023-12-13 16:11 |
瀏覽次數(shù): | 124 |
采購咨詢: |
請賣家聯(lián)系我
|
西門子PLC中央處理器CPU1212C西門子中國總代理 西門子授權(quán)代理商、
西門子PLC中央處理器CPU1212C西門子中國總代理 西門子授權(quán)代理商
西門子PLC中央處理器CPU1212C西門子中國總代理 西門子授權(quán)代理商
(1)生成數(shù)組
??可以在數(shù)據(jù)塊中定義數(shù)組,也可以在邏輯塊的變量聲明表中定義它。下面介紹在數(shù)據(jù)塊中定義的方法。在SIMATIC管理器中用菜單命令“插入”→“S7塊”→“數(shù)據(jù)塊”生成數(shù)據(jù)塊DB4。雙擊打開它,默認(rèn)的顯示方式為聲明視圖方式。聲明視圖用于定義、刪除和修改共享數(shù)據(jù)塊中的變量,指定它們的名稱、數(shù)據(jù)類型和初始值。
??在新生成的數(shù)據(jù)塊的第一行和最后一行標(biāo)有STRUCT(結(jié)構(gòu))和END_STRUCT(結(jié)構(gòu)結(jié)束)。在這兩行中間有一個自動生成的臨時(shí)占位符變量。
??將該行的名稱改為數(shù)組的名稱“PRESS”(見圖4-7),變量的名稱只能使用字母、數(shù)字和下劃線,不能使用中文。用鼠標(biāo)右鍵點(diǎn)擊該行的“類型”列,執(zhí)行彈出的快捷菜單中的“復(fù)雜類型”→“ARRAY”
??(數(shù)組)命令,在出現(xiàn)的“ARRAY 【】”的方括號中輸入
??“1..2,1.3”,即指定二維數(shù)組PRESS有2×3個元素。在“注釋”列按回車鍵,在AR-RAY下面一行的“類型”列輸入“INT”,定義數(shù)組元素為16位整數(shù),INT所在行的“地址”列自動生成的“*2.0”表示一個數(shù)組元素占用2B。地址列的“ 12.0”表示該數(shù)組的6個元素一共占用12B,地址列的內(nèi)容是自動生成的??梢杂弥形慕o每個變量加上注釋。
??數(shù)組PRESS的第1個元素為PRESS【1,1】(見圖4-6和圖4-8),第4個元素為PRESS【2,1】,第6個元素為PRESS【2,3】。
??(2)給數(shù)組元素賦初值
??STEP7根據(jù)變量的數(shù)據(jù)類型給出默認(rèn)的初始值,用戶可以修改初始值。定義數(shù)組時(shí)可以在ARRAY所在的行的“初始值”列中給數(shù)組元素賦初值,各元素的初值之間用英語逗號分隔,例如上例中6個元素的初值可以寫成“22,30,-5,0,0,0,結(jié)束時(shí)不用標(biāo)點(diǎn)符號。
??若相鄰元素的初值相同可以簡寫,上述初值可以簡寫為“22,30,-5,3(0)”(見圖4-7)。
??執(zhí)行菜單命令“視圖”→“數(shù)據(jù)視圖”,切換到數(shù)據(jù)視圖方式,將顯示數(shù)組和結(jié)構(gòu)中各元素的初始值和實(shí)際值(見圖4-8)。
??在數(shù)據(jù)視圖方式,顯示變量的初始值和實(shí)際值,用戶只能修改變量的實(shí)際值,修改后需要下載數(shù)據(jù)塊。如果用戶輸入的實(shí)際值與變量的數(shù)據(jù)類型不符,將用紅色顯示錯誤的數(shù)據(jù)。在數(shù)據(jù)視圖方式,用菜單命令“編輯”→“初始化數(shù)據(jù)塊”,可以恢復(fù)變量的初始值。1 800
??(3)訪問數(shù)組中的數(shù)據(jù)
??本例中的數(shù)組是數(shù)據(jù)塊的一部分,訪問數(shù)組中的數(shù)據(jù)時(shí),需要指出數(shù)據(jù)塊和數(shù)組的名稱,以及數(shù)組元素的下標(biāo),例如”TANK”.PRESS【2,1】。其中的TANK是數(shù)據(jù)塊DB4的符號名,PRESS是數(shù)組的名稱,它們用英語的句號分開。方括號中是數(shù)組元素的下標(biāo),該元素是數(shù)組中的第4個元素(見圖4-8)。
??(4)用數(shù)組傳遞參數(shù)
??如果在塊的變量聲明表中聲明形參的類型為ARRAY,可以將整個數(shù)組作為參數(shù)來傳遞(見圖4-23)。在調(diào)用塊時(shí)也可以將某個數(shù)組元素賦值給同一數(shù)據(jù)類型的參數(shù)。
??(5)用數(shù)組定義數(shù)據(jù)塊的大小
??數(shù)據(jù)塊的大小與數(shù)據(jù)塊中定義的變量的個數(shù)和數(shù)據(jù)類型有關(guān)。如果需要一個容量很大的數(shù)據(jù)塊,可以用數(shù)組來定義數(shù)據(jù)塊的大小。如果在數(shù)據(jù)塊中只定義一個數(shù)組ARRAY 【1..500】,數(shù)組元素的數(shù)據(jù)類型為字,則該數(shù)據(jù)塊的大小為1000B。可以用juedui地址和任意的簡單數(shù)據(jù)類型來訪問該數(shù)據(jù)塊中的存儲單元。如果訪問數(shù)據(jù)塊中未定義的地址,將會出現(xiàn)錯誤信息“讀取時(shí)發(fā)生區(qū)域長度錯誤”。
??(6)設(shè)置數(shù)據(jù)塊的參數(shù)
??用鼠標(biāo)右鍵點(diǎn)擊某個數(shù)據(jù)塊,執(zhí)行出現(xiàn)的快捷菜單中的“對象屬性”命令,在出現(xiàn)的屬性對話框的“常規(guī)-第2部分”選項(xiàng)卡中,可以用復(fù)選框設(shè)置數(shù)據(jù)塊的屬性。各參數(shù)具體的意義見在線幫助。
??(7)使用程序狀態(tài)功能監(jiān)視數(shù)據(jù)塊
??點(diǎn)擊數(shù)據(jù)塊工具欄上的@按鈕,自動切換到“數(shù)據(jù)視圖”顯示方式,數(shù)據(jù)塊內(nèi)的存儲單元在線的數(shù)值在“實(shí)際值”列中顯示。程序狀態(tài)被激活后,不能切換為“聲明視圖”方式。
??程序狀態(tài)結(jié)束后,“實(shí)際值”列將顯示程序狀態(tài)之前的有效內(nèi)容,在線數(shù)值不能傳送到離線的數(shù)據(jù)塊。
?1. 數(shù)據(jù)塊的分類
??數(shù)據(jù)塊(DB)用來分類儲存設(shè)備或生產(chǎn)線中變量的值,數(shù)據(jù)塊也是用來實(shí)現(xiàn)各邏輯塊之間的數(shù)據(jù)交換、數(shù)據(jù)傳遞和共享數(shù)據(jù)的重要途徑。數(shù)據(jù)塊豐富的數(shù)據(jù)結(jié)構(gòu)便于提高程序的執(zhí)行效率和進(jìn)行數(shù)據(jù)管理。與邏輯塊不同,數(shù)據(jù)塊只有變量聲明部分,沒有程序指令部分。
??數(shù)據(jù)塊分為共享數(shù)據(jù)塊(DB)和背景數(shù)據(jù)塊(DI)。在共享數(shù)據(jù)塊和符號表中聲明的變量都是全局變量。用戶程序中所有的邏輯塊(FB、FC、SFB、SFC和OB)都可以使用共享數(shù)據(jù)塊和符號表中的數(shù)據(jù)。
??2. 生成共享數(shù)據(jù)塊
??在符號表中,共享數(shù)據(jù)塊的數(shù)據(jù)類型是它本身,背景數(shù)據(jù)塊的數(shù)據(jù)類型是對應(yīng)的功能塊。
??用鼠標(biāo)右鍵點(diǎn)擊SIMATIC管理器左邊窗口中的“塊”,在彈出的菜單中執(zhí)行“插入新對象”→“數(shù)據(jù)塊”命令,生成新的數(shù)據(jù)塊,默認(rèn)的類型為共享數(shù)據(jù)塊。
??3. 基本數(shù)據(jù)類型
??基本數(shù)據(jù)類型包括位(BOOL)、字節(jié)(BYTE)、字(WORD)、雙字(DWORD)、整數(shù)(INT)、雙整數(shù)(DINT)和浮點(diǎn)數(shù)(FLOAT,或稱實(shí)數(shù)REAL)等(見3.2.2節(jié))。
??4. 復(fù)雜數(shù)據(jù)類型
??復(fù)雜數(shù)據(jù)類型包括日期和時(shí)間(DATE_AND_TIME)、字符串(String)、數(shù)組(Array)、結(jié)構(gòu)(Struct)和用戶定義的數(shù)據(jù)類型(UDT)。
??(1)日期和時(shí)間
??日期和時(shí)間(DATE_AND_TIME,縮寫為DT)占用8個字節(jié)的BCD碼。第1~6個字節(jié)分別存儲年的低兩位、月、日、時(shí)、分和秒,毫秒存儲在整個第7個字節(jié)和第8個字節(jié)的高4位,星期存放在第8個字節(jié)的低4位。星期日的代碼為1,星期一~星期六的代碼為2~7。例如2010年7月27日12點(diǎn)30分25.123秒可以表示為DT#∶30∶25.123,可以省略毫秒部分。
??通過調(diào)用程序編輯器的文件夾“\Libraries\ Standard Library\IEC Function Block”中的IEC功能(見附表B-4),可以實(shí)現(xiàn)DATE_AND_TIME數(shù)據(jù)類型與基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換、日期時(shí)間的比較和加、減,具體的使用方法見在線幫助。
??調(diào)用SFCO" SET_CLK",可以設(shè)置和啟動CPU時(shí)鐘的時(shí)間和日期。調(diào)用SFC1"的READ_CLK",可以讀取CPU系統(tǒng)時(shí)鐘當(dāng)前的日期和時(shí)間。
??(2)字符串
??字符串(String)是字符(Char)組成的一維數(shù)組,每個字節(jié)存放1個字符。第1個字節(jié)是字符串的最大字符長度,第2個字節(jié)是字符串當(dāng)前有效字符的個數(shù),字符從第3個字節(jié)開始存放,一個字符串最多有254個字符。字符串的默認(rèn)長度為254B,在DB4中定義字符串Fault的長度為20個字符(見圖4-7),它只占用從DB4.DBB20開始的22B,其初值只有4個字符'Over’。String變量中未使用的字節(jié)地址被初始化為B#16#00。
??將DB4下載到仿真PLC,用變量表監(jiān)控DB4.DBB20和DB4.DBB21,它們的值分別為20(字符串Fault的長度為20)和4(當(dāng)前有4個字符)。還可以看到從DB4.DBB22開始的4個字節(jié)中字符‘Over’的ASCII碼。可以用語句表中的基本指令訪問字符串中的字符,例如用指令“L DB4.Fault 【3】”來訪問字符串Fault的第3個字符。
??可以用標(biāo)準(zhǔn)庫的IEC庫中的21個功能來處理字符串變量(見附表B-4),包括字符串與其他數(shù)據(jù)類型的轉(zhuǎn)換、字符串的比較和字符串的編輯,具體的使用方法見在線幫助。
??(3)數(shù)組
??數(shù)組(ARRAY)是同一類型的數(shù)據(jù)組合而成的一個單元,數(shù)組的維數(shù)最多為6維。圖4-6給出了一個二維數(shù)組ARRAY 【1.2,1..3】 的內(nèi)部結(jié)構(gòu),它共有6個字節(jié)元素,圖中的每一小格為二進(jìn)制的1位,每個元素占一行(一個字節(jié))。ARRAY后面的方括號中的數(shù)字用來定義每一維的起始元素和結(jié)束元素在該維中的編號,可以取-32768~32767之間的整數(shù)。各維之間的數(shù)字用逗號隔開,每一維開始和結(jié)束的編號用兩個小數(shù)點(diǎn)隔開。如果某一維有n個元素,該維的起始元素和結(jié)束元素的編號可以采用1和n,例如AR-RAY [1..100]。
??(4)結(jié)構(gòu)
??結(jié)構(gòu)(STRUCT)可以是不同類型的數(shù)據(jù)的組合。可以用基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型(包括數(shù)組和結(jié)構(gòu))和用戶定義數(shù)據(jù)類型(UDT)作為結(jié)構(gòu)中的元素,例如一個結(jié)構(gòu)可以由數(shù)組和結(jié)構(gòu)組成,結(jié)構(gòu)可以嵌套8層。用戶可以把過程控制中有關(guān)的數(shù)據(jù)統(tǒng)一組織在一個結(jié)構(gòu)中,作為一個數(shù)據(jù)單元來使用,而不是使用大量的單個的元素,為統(tǒng)一處理不同類型的數(shù)據(jù)或參數(shù)提供了方便。
??(5)用戶定義數(shù)據(jù)類型
??用戶定義數(shù)據(jù)類型(User-Defined Data Types)簡稱為UDT,是一種特殊的數(shù)據(jù)結(jié)構(gòu),用戶只需要對它定義一次,定義好以后可以在用戶程序中作為數(shù)據(jù)類型使用??梢杂盟鼇懋a(chǎn)生大量的具有相同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)塊,用這些數(shù)據(jù)塊來輸入用于不同目的的實(shí)際數(shù)據(jù)。例如生成用于顏料混合配方的UDT后,可以用它生成用于不同顏色配方的數(shù)據(jù)組合。用戶定義數(shù)據(jù)類型由基本數(shù)據(jù)類型和(或)復(fù)雜數(shù)據(jù)類型組成。定義好以后可以在符號表中為它指定一個符號名,使用UDT可以節(jié)約錄人數(shù)據(jù)的時(shí)間。