




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、SoMachine 軟件介紹和編程培訓Confidential Property of Schneider Electric王兆宇2018-5-12Page 2Confidential Property of Schneider Electric |1SoMachine軟件簡介軟件簡介2SoMachine軟件編程入門培訓軟件編程入門培訓3SoMachine典型編程舉例典型編程舉例-HSC4SoMachine典型編程舉例典型編程舉例-PTO5SoMachine典型編程舉例典型編程舉例-Modbus6SoMachine典型編程舉例典型編程舉例-CANopen7SoMachine在線編譯、診斷在線編
2、譯、診斷SoMachinePage 3Confidential Property of Schneider Electric |Confidential Property of Schneider ElectricSoMachine V4.3 編程軟件編程軟件V1 2007V2 2009V3 2011V4.12014u友好的軟件界面友好的軟件界面u豐富的編程語言豐富的編程語言u靈活的配置方案靈活的配置方案u詳實的在線幫助詳實的在線幫助V4.1 SP12015V4.2 2016V4.3 2017V4.3 SP22018Confidential Property of Schneider Elec
3、tricSoMachine V4.2/V4.3 自定義安裝自定義安裝Windows 7 SP1 專業版 32 位/64 位Windows 8.1專業版 32 位/64 位Windows 10專業版 32 位/64 位PC推薦配置CPU-Intel Core i7內存-8G硬盤-15G空閑空間SoMachine 4.2/4.3 軟件下載:請關注微信號SoMachine然后在首頁中下載SoMachine 4.1授權在4.2/3中有效SoMachine 具有強大的設備集成能力具有強大的設備集成能力簡化機器的工程階段 實現完整的機器設備程序,通過: 1 項目文件項目文件 1 次下載次下載 1 根編程電
4、纜根編程電纜 TVDA文檔和項目文件可以重復使用在相同機器上,大量節省設計時間。注:TVDA: Tested Validated Documented Architecture Page 6Confidential Property of Schneider Electric |高級集成 設備元件本體集成在SoMachine編程軟件中, 方便使用SoMachine兼容FDT/DTM 使用FDT/DTM 的好處: 所有集成設備的一致性基于統一的標準,開放第三方產品的接入Page 7Confidential Property of Schneider Electric | 通過拖放來配置你的設備通
5、過拖放來配置你的設備 從設備和模塊目錄 本地集成減少操作次數 驅動器是預配置好的驅動器是預配置好的 網絡配置已經預設值完成 現場總線預配置完成 配置好的IO映射能夠簡化項目的開始階段 自動加載庫文件第一步快速而且簡單:拖放 編譯 下載 運行 !SoMachine編程入門Page 8Confidential Property of Schneider Electric |SoMachine軟件軟件如何啟動SoMachine和更改編程軟件的語言 從窗口的開始菜單選擇從窗口的開始菜單選擇SoMachine V4.2/4.3 或者雙擊桌面上的或者雙擊桌面上的SoMachine V4.2/4.3打開So
6、Machine軟件 SoMachine第一次打開后是英文版第一次打開后是英文版在系統設定-logic builder option -International setting-選擇中文,選擇后點擊OK然后退出SoMachine再重新進入就是中文界面了Page 9Confidential Property of Schneider Electric |SoMachine軟件啟動介紹軟件啟動介紹SoMachine 軟件啟動畫面 進入進入SoMachine V4.2軟件后軟件后在啟動界面下共有四個選項在啟動界面下共有四個選項最近的項目-打開最近編輯過的項目連接控制器新建項目打開項目 選擇新建項目后
7、選擇新建項目后SoMachine提供4個新建項目的方式,分別是:使用助手帶模塊空項目新建庫Page 10Confidential Property of Schneider Electric |SoMachine軟件創建新的項目軟件創建新的項目使用模板 使用模板中的使用模板中的TVDA創建項目創建項目在帶模板選項下面,選擇機器類型并填寫項目名稱在帶模板選項下面,選擇機器類型并填寫項目名稱Page 11Confidential Property of Schneider Electric |SoMachine軟件創建新的項目軟件創建新的項目使用空項目創建新項目 使用空項目創建新的項目,項目中的使
8、用空項目創建新的項目,項目中的PLC、觸摸屏等硬件和程序需手動添加、觸摸屏等硬件和程序需手動添加Page 12Confidential Property of Schneider Electric |SoMachine軟件創建新的庫軟件創建新的庫使用空項目創建新庫 使用空項目創建新的庫使用空項目創建新的庫-庫的名稱和庫的屬性庫的名稱和庫的屬性Page 13Confidential Property of Schneider Electric |SoMachine主頁面編程環境介紹主頁面編程環境介紹主界面簡介 多選項卡導航器:設備樹、應用程序樹和工具樹Page 14Confidential Pr
9、operty of Schneider Electric |SoMachine設備樹設備樹硬件配置 在設備樹下雙擊需要編輯的條目在設備樹下雙擊需要編輯的條目例如需要設置高速計數器則雙擊counter,其它設置例如PTO,邏輯輸入、輸出、通訊等都使用同樣的方法 然后進行進一步設置,例如選擇高速計數器的類型為HSCsimple IO上的擴展:上的擴展:Catridge、COM_Bus和和IO_Bus,采用右鍵菜單,選擇,采用右鍵菜單,選擇“添加設備添加設備”Page 15Confidential Property of Schneider Electric |SoMachine應用程序樹應用程序樹
10、編程的功能 應用程序樹包含了軟件編程核心的功能應用程序樹包含了軟件編程核心的功能 采用右鍵菜單,選擇采用右鍵菜單,選擇“添加對象添加對象”,可添加的對象包括最常用的,可添加的對象包括最常用的POU、跟蹤、可視化、配方、跟蹤、可視化、配方. 然后選擇添加程序組織單元然后選擇添加程序組織單元POU,在,在POU中選擇此中選擇此POU是程序、功能塊還是函數是程序、功能塊還是函數Page 16Confidential Property of Schneider Electric |SoMachine應用程序樹續應用程序樹續任務的配置和POU的調用 在任務配置中可創建多個任務,在任務配置中可創建多個任務
11、, MAST任務在創建項目后自動創建任務在創建項目后自動創建 選擇某一任務,例如選擇某一任務,例如MAST任務,雙擊進入任務配置界面,設置任務優先級(數值越小越高)和任任務,雙擊進入任務配置界面,設置任務優先級(數值越小越高)和任務的類型,如果是循環的,則每隔一段設置的務的類型,如果是循環的,則每隔一段設置的“間隔間隔”時間自動執行。時間自動執行。Page 17Confidential Property of Schneider Electric |SoMachine應用程序樹續應用程序樹續任務的配置和POU的調用 在任務配置中可設置軟件看門狗,看門狗的報警時間在任務配置中可設置軟件看門狗,看
12、門狗的報警時間時間時間*“靈敏度靈敏度” 在在“添加調用添加調用”選擇在任務中執行的程序組織單元選擇在任務中執行的程序組織單元POU 。Page 18Confidential Property of Schneider Electric |SoMachine工具樹工具樹庫文件的添加和配置 施耐德提供大量的庫文件供最終用戶使用,有些庫在添加硬件時自動添加,有些庫可以手動添加施耐德提供大量的庫文件供最終用戶使用,有些庫在添加硬件時自動添加,有些庫可以手動添加 在工具樹還有一個重要功能是工程設置在工具樹還有一個重要功能是工程設置Page 19Confidential Property of Schn
13、eider Electric |SoMachine六種編程語言一六種編程語言一FBD/LD/IL/CFC/ST/SFC 梯形圖LD是基于圖形的編程語言,梯形圖語言沿襲了繼電器控制電路的形式,梯形圖是在常用的繼電器與接觸器邏輯控制基礎上簡化了符號演變而來的,具有形象、直觀、實用等特點,電氣技術人員容易接受,是電氣人員編程使用比較多的語言 指令列表 (IL) 是一種類似匯編程序的 IEC 61131-3 編程語言,適合熟練掌握機器語言的IT人員來使用,該語言支持基于累加器的編程。支持 IEC 61131-3 操作符以及多輸入/多輸出、取反、注釋、輸出的設置/重置和無條件/有條件跳轉。 每個指令主要
14、通過使用 LD 操作符將值載入累加器來發揮作用。此后會使用從累加器中獲得的第一個參數執行操作。操作的結果可在累加器中使用Page 20Confidential Property of Schneider Electric |SoMachine六種編程語言二六種編程語言二FBD/LD/IL/CFC/ST/SFC FBD功能塊圖是面向圖形的編程語言,是一種類似于數字邏輯電路結構的編程語言,是一種使用布爾代數的圖形邏輯符號來表示的控制邏輯,一些復雜的功能用指令框表示,適合于有數字電路基礎的編程人員使用。功能塊圖用類似于與門、或門的框圖來表示邏輯運算關系,方框的左側為邏輯運算的輸入變量,右側為輸出變量
15、,輸入、輸出端的小圓圈表示“非”運算,方框用“導線”連在一起,信號自左向右 連續功能圖 (CFC) 語言是用圖形方式連接程序庫中以塊的形式提供的各種功能,包括從簡單的邏輯操作到復雜的功能塊調用。編程時將這些塊放到圖中并用線連接起來即可。功能塊自由放置,調整圖形元素,允許將功能塊的輸出反過來接到輸入。 Page 21Confidential Property of Schneider Electric |SoMachine六種編程語言三六種編程語言三FBD/LD/IL/CFC/ST/SFC ST語言是定位給程序設計者使用的,它是一個與Pascal語言相類似的高級程序設計語言.程序包含了一些象DO
16、 - WHILE、REPEAT - UNTIL、FOR - TO - DO、IF - THEN - ELSE、CASE - OF的結構語句使用,方便用戶編程,雖然不直觀,但是編程方便,相比梯形圖來說占用空間小,建議使用SoMachine軟件的編程人員都要掌握這種編程方法。 SFC順序功能圖,也稱為順序功能流程圖,是一種強大的描述控制程序的順序行為特征的圖形化語言,可對復雜的過程或操作由頂到底地進行輔助開發,特別適合用于有固定流程的工藝過程。SFC允許一個復雜的問題逐層地分解為步和較小的能夠被詳細分析的順序。SFC本身不是一種獨立的語言. 一個用SFC編寫的程序看上去就象一個方框圖,這個方框圖由
17、程序塊(梯階)、步間的轉換和發生這些轉換時所依賴的條件組成。Page 22Confidential Property of Schneider Electric |SoMachine編程中的變量聲明編程中的變量聲明變量聲明 可通過以下方式聲明一個變量:在軟件目錄的變量視圖中 在 POU 的聲明編輯器中-手動添加,常用 通過自動聲明對話框 最常用在 DUT 編輯器中在 GVL 編輯器中-手動添加,常用 變量聲明的語法: AT : :=; :=這部分根據需要填寫,可以沒有初始值。 變量的數據類型 VAR_INPUT、 VAR_OUTPUT、 VAR_IN_OUT、 VAR_GLOBAL、 VAR_
18、TEMP、 VAR_STAT、VAR_EXTERNAL、 VAR_CONFIGPage 23Confidential Property of Schneider Electric |SoMachine編程中的變量聲明編程中的變量聲明變量聲明 變量數值的斷電保持(剩余變量和保留持久性變量): 前 1000 個 %MW 會自動持久保留,如果沒有使用AT指令與這些變量關聯。它們的值在重新啟動/熱復位/冷復位后得到保留。 在GVL編輯器中聲明為VAR GLOBAL PERSISTENT RETAIN,即將變量m1聲明為保留持久性變量Page 24Confidential Property of Sch
19、neider Electric |SoMachine的梯形圖編程界面和常用指令的梯形圖編程界面和常用指令梯形圖的編程 在FBD/LD/IL編輯器中,可選擇梯形圖編程時的所有元素包括:插入新的網絡(即新的梯級)、常開、常閉、上升沿、下降沿觸點、串聯或并聯觸點、線圈、(置位線圈、復位線圈、取反線圈)、定時器(TON,TOFF,TP)、比較器 可插入跳轉或返回return 可通過空功能塊調用庫中或用戶自己編寫的功能塊 可插入分支 通過視圖可以將程序在FBD、IL或LD三種語言中切換 推薦用戶盡快熟悉和使用ST編程語言Page 25Confidential Property of Schneider
20、Electric |SoMachine的常用指令的常用指令常用基本指令 基本算術指令(由 IEC1131-3 標準規定)可用: ADD 加、MUL -乘、SUB 減、DIV 除、MOD-取余數、MOVE 賦值操作 邏輯操作操作符可用(與 IEC1131-3 標準匹配): AND-與、OR-或、XOR 異或、NOT-取反 移位操作符 SHL-用于操作數的逐位左移位的 IEC 操作符。 erg:= SHL (in, n)in:將向左移位的操作數 ;n:in 向左進行移位的位數 SHR -用于操作數的逐位左移位的 IEC 操作符 ROL 循環左移 ROR-循環右移 Page 26Confidenti
21、al Property of Schneider Electric |SoMachine的常用指令的常用指令常用基本指令 移位操作符 SHR-用于操作數的逐位右移位的 IEC 操作符,左側以0填充。 erg:= SHR(in, n)in:將向右移位的操作數 ;n:in 向左進行移位的位數ROL-循環左移用于對操作數進行向左逐位旋轉的 IEC 操作符。 允許的數據類型 :BYTE 、WORD 、DWORD、LWORD in 將 n 次向左進行 1 個位置的移位,而距離左側最遠的位將從右側重新插入 例:ROR-循環右移Page 27Confidential Property of Schneide
22、r Electric |SoMachine的常用指令的常用指令常用基本指令 選擇操作符 SEL-選擇操作符還可以通過變量來執行。用于二進制選擇的 IEC 選擇操作符。 G 將決定是否把 IN0 或 IN1 分配到 OUT。 OUT := SEL(G, IN0, IN1) ;則 if G=FALSE ,OUT := IN0; if G=TRUE OUT := IN1 MAX-取兩個值中的最大值 MIN-取兩個值中的最小值 LIMIT-限制函數OUT := LIMIT(Min, IN, Max) N (MAX (IN, Min), Max)Max 是結果的上限,而 Min 是結果的下限。如果值 I
23、N 超出上限 Max, 則 LIMIT 將返回 Max。如果 IN 低于 Min,則結果將為 Min。 IN 和 OUT 可以是任何類型的變量。 Page 28Confidential Property of Schneider Electric |SoMachine的常用指令的常用指令常用基本指令 選擇操作符 MUX-選擇操作符還可以通過變量來執行IEC 選擇操作符,用于多路復用操作。 OUT := MUX(K, IN0,.,INn) 意味著: OUT := INk IN0, .,INn 和 OUT 可以是任何類型的變量。 K 必須是 BYTE, WORD, DWORD, LWORD, SI
24、NT, USINT, INT, UINT, DINT, LINT, ULINT 或 UDINT。 MUX 用于從一組值中選擇第 K 個值。 IN 和 OUT 可以是任何類型的變量。 Page 29Confidential Property of Schneider Electric |SoMachine的梯形圖編程界面和常用指令的梯形圖編程界面和常用指令常用基本指令 比較操作符GT GT 操作符是布爾操作符,當第一個操作數的值大于第二個操作數的值時,返回值 TRUE。 LT LT 操作符是布爾操作符,當第一個操作數的值小于第二個操作數的值時,返回值 TRUE。LE LE 操作符是布爾操作符,當
25、第一個操作數的值小于或等于第二個操作數的值時,返回值 TRUE。 GE-GE 操作符是布爾操作符,當第一個操作數的值大于或等于第二個操作數的值時,返回值 TRUE。EQ EQ 操作符是布爾操作符,當兩個操作數相等時,返回值 TRUE。NE NE 操作符是布爾操作符,當操作數不相等時,返回值 TRUE。 地址操作符 ADR-ADR 用于返回其參數的地址,以 DWORD 為數據類型。此地址可以分配給工程中的指針。 -可以用內容操作符,傳遞指針指向的內容例如pt := ADR(var_int1); var_int2:=pt;Page 30Confidential Property of Schnei
26、der Electric |SoMachine的梯形圖編程界面和常用指令的梯形圖編程界面和常用指令常用基本指令 顯式轉換操作符 BOOL_TO 轉換 TO_BOOL 轉換 整數類型之間的轉換 REAL_TO-/ LREAL_TO 轉換 TIME_TO/TIME_OF_DAY 轉換 DATE_TO/DT_TO 轉換 STRING_TO 轉換 TRUNC(浮點數轉換為 DINT) TRUNC_INT ANY_NUM_TO_ ANY_._TO 轉換 。 Page 31Confidential Property of Schneider Electric |SoMachine的梯形圖編程界面和常用指令
27、的梯形圖編程界面和常用指令常用基本指令 數學函數 ABS-絕對值 SQRT 開根號 LN 自然對數 LOG -返回以 10 為底數的數字的對數值。 EXP -數字 IEC 操作符,用于返回指數函數 SIN -用于返回角的正弦值。以弧度為單位,輸出變量必須是 REAL 或 LREAL 類型。 COS- 余弦函數 TAN-正切函數 ASIN 反正弦 ACOS 反余弦 ATAN 反正切 EXPT -用于使用一個變量對另一個變量求冪 Page 32Confidential Property of Schneider Electric |SoMachine的在線仿真和調試技巧Page 33Confide
28、ntial Property of Schneider Electric |SoMachine的在線仿真程序的在線仿真 通過編譯等選項查找程序的語法錯誤后,可使用仿真查找程序中可能存在的邏輯錯誤仿真功能可以在不連接到實際PLC進行軟件的調試在“在線”菜單下勾選“仿真”然后在設備樹選擇在線的“codesys”然后登陸如果項目是最新的,要重新檢查,點擊:重新編譯重新編譯Page 34Confidential Property of Schneider Electric |SoMachine的在線仿真-續程序的在線仿真在彈出的對話框確認選擇“Yes”選擇登錄到仿真PLC“W7CN1021200081
29、0”然后SoMachine提示仿真器沒有程序,在對話框中選擇“是”SoMachine將下載程序,程序下載后點擊運行程序運行后在編程軟件中顯示“運行”Page 35Confidential Property of Schneider Electric |SoMachine的在線仿真-續程序的在線仿真 程序運行后,先在準備值中設好需要的數據值,然后按CTRL+F7修改值 如果需要更改變量的顯示模式例如改為16進制顯示,“調試”-“顯示模式”-“16進制”Page 36Confidential Property of Schneider Electric |SoMachine的在線仿真程序的變量監視
30、 程序運行后,可以在監視窗口添加要監視的變量,這樣調整程序中的問題更方便Page 37Confidential Property of Schneider Electric |SoMachine的在線仿真程序的變量的交叉參數和查找 當程序比較大, 變量被多次讀寫和調用,這時可以使用交叉參考和程序搜索功能幫助查找問題 直接按Ctrl+F,查找的結果在消息變量對話框中Page 38Confidential Property of Schneider Electric |SoMachine的內部畫面和功能塊演示Page 39Confidential Property of Schneider Ele
31、ctric |SoMachine的內部畫面首先創建一個CFC編程的POU,加入ATV320控制功能塊,然后創建SoMachine內部畫面Page 40Confidential Property of Schneider Electric |SoMachine的內部畫面添加內部畫面完成后,在內部畫面中選擇Frame加入Page 41Confidential Property of Schneider Electric |SoMachine的內部畫面在內部畫面中選擇Control_ATV功能塊,然后在m_input中的.,在輸入助手中關聯POU中的功能塊實例Page 42Confidential
32、Property of Schneider Electric |SoMachine項目相關練習項目相關練習編程基礎 練習1在SoMachine中新建TM241的項目。 練習2打開一個IMC卡的TVDA項目,觀察此TVDA項目的結構。 練習3創建一個庫文件,用于實現卷徑的計算,卷徑采用R=R0+2*h*m,其中R是實時卷徑,R0是卷筒的直徑、h為卷材的厚度,m為卷材的圈數。編程語言不限,要求編寫實現此運算的功能塊的編譯庫,并在新項目中添加并完成調用。Page 43Confidential Property of Schneider Electric |SoMachine的ST編程語言Page 4
33、4Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言梯形圖的編程 結構文本是一種高級語言,如果你知道如何使用高級語言來編程,像:Basic、PACSAL或C,那么你會很輕松的掌握Structured Text(ST)編程;如果了解這些高級語言,你也會看到ST有著簡單、標準的結構,程序運行高效、閱讀程序簡潔易懂等突出的優點。 ST使用了高級語言的許多傳統特性,包括:變量、操作符和控制流程語句。 ST提供以下功能: 數字量和模擬量I/O 邏輯操作和邏輯比較表達式 算術運算 判斷語句 循環語句 功能塊 可選用的動態變量
34、 診斷工具Page 45Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 表達式表達式是指返回變量評估值的結構。表達式由操作符和操作數組成。操作數可以是常量,變量,調用函數或其它表達式。 賦值操作符通過一個表達式和一個值來給變量賦值。賦值語句包括位于左邊的變量,賦值操作符“:=”,及后邊需要計算的表達式。所有的語句,包括賦值語句,必須要以分號“;”結尾。注意“=”是比較兩者是否相等! 注釋雖然注釋經常被刪掉,但它們是源代碼中非常重要的一部分。它們解釋了一部分代碼,使程序更易讀懂。注釋幫助你或其他人讀你的
35、程序,即使過去了很長時間。注釋不被編譯,因此不會影響程序的執行。注釋應該用一對星號和小括號括起來“(*comment*)”或者在原有的程序加兩個反斜杠“/”使原來的程序不起作用Page 46Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 操作符優先級如果在一個表達式中使用幾個操作符,就會出現優先級的問題(執行的順序)。操作符按優先級的順序來執行。在任何一個表達式中,首先執行最高級別的操作符,接著執行低一級的操作符,等等,直到執行完所有的操作符。具有相同級別的操作符按照書寫順序從左至右依次執行。Page
36、 47Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 SoMachine的數據類型SoMachine的數據類型分為兩類:標準型和用戶定義類型。 標準型的數據類型BOOL 、整數 、REAL / LREAL 、STRING 、時間數據類型(TOD 和DT)和某些標準型的擴展Page 48Confidential Property of Schneider Electric |數據類型數據類型 下限下限 上限上限 存儲器空間存儲器空間 BYTE 0 255 8 位 WORD 0 65,535 16 位 D
37、WORD 0 4,294,967,295 32 位 LWORD 0 264-1 64 位 SINT 128 127 8 位 USINT 0 255 8 位 INT 32,768 32,767 16 位 UINT 0 65,535 16 位 DINT 2,147,483,648 2,147,483,647 32 位 UDINT 0 4,294,967,295 32 位 LINT 263 263-1 64 位 ULINT 0 264-1 64 位 REAL1.401e-453.403e+3832位LREAL2.2250738585072014e-3081.7976931348623158e+308
38、64位TIME或或LTIME類型舉例類型舉例TIME1 := T#14ms;TIME1 := T#100S12ms;TIME1 := t#12h34m15s;LTIME1 := LTIME#1000d15h23m12s34ms2us44nsDATE 值可以內部方式處理為值可以內部方式處理為 DWORD 值,包含從值,包含從 1970 年年 01 月月 01 日日 00:00 時鐘時間開始的時間范圍,以秒為單位。時鐘時間開始的時間范圍,以秒為單位。 例如:例如: DATE#1996-05-06d#1972-03-29TIME_OF_DAY 值可以內部方式處理為值可以內部方式處理為 DWORD 值
39、,包含從值,包含從 00:00 時鐘時間開始的時間范圍,以毫秒為單位。時鐘時間開始的時間范圍,以毫秒為單位。 例如例如TIME_OF_DAY#15:36:30.123tod#00:00:00SoMachine的的ST編程語言編程語言數組和結構 擴展的數據類型-數組支持將一維、兩維或三維數組。在 POU 的聲明部分以及全局變量中定義數組。還可以使用隱式邊界檢查。 :ARRAY .,.,. OF ,其中,ll1, ll2, ll3 標識字段范圍的下限。 ul1, ul2 和 ul3 標識字段范圍的上限。 范圍值必須為整數類型。 例如聲明一個撲克牌的二維數組:Card_game: ARRAY 1.1
40、3, 1.4 OF INT;數組初始化舉例:arr1 : ARRAY 1.5 OF INT := 1,2,3,4,5; 擴展的數據類型-結構在工廠生產產品的出廠信息包括了名字、批次、出廠日期等等數據,無法用一種數據類型進行描述,這時要用到結構體數據類型。 TYPE : STRUCT . END_STRUCT END_TYPE 是在工程中識別的類型,并且可以用作標準數據類型。 結構體允許嵌套但是不支持AT指令。多邊形的結構定義示例: TYPE Polygonline:STRUCT Start:ARRAY 1.2 OF INT; Point1:ARRAY 1.2 OF INT; Point2:AR
41、RAY 1.2 OF INT; Point3:ARRAY 1.2 OF INT; Point4:ARRAY 1.2 OF INT; End:ARRAY 1.2 OF INT;END_STRUCTPage 49Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言枚舉 擴展的數據類型-枚舉一個星期七天,一年只有十二個月,紅綠燈有紅、白、藍三個顏色等等。串口校驗方式:奇、偶、無。CANopen的狀態: 語法 TYPE (, .,) |;END_TYPE 類型的變量可以采用下列其中一個枚舉值 并且將以第一個枚舉值進行初始化
42、。這些值與整數兼容!如果枚舉值未以聲明中的特定值進行初始化,則計數將從 0 開始。初始化時,請確保初始值在組件行中增加。 Page 50Confidential Property of Schneider Electric |INIT 初始化0RESET_COMM復位通訊1RESET_APP復位應用2PRE_OPERATIONAL預處理3STOPPED停止4OPERATIONAL正常運行5UNKNOWN未知6NOT_AVAIL不可用7SoMachine的的ST編程語言編程語言編程基礎 布爾邏輯操作布爾邏輯操作的操作數可以是BOOL、字節、字、雙字或長雙字等類型。Page 51Confident
43、ial Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 布爾邏輯操作編程舉例1在下面的電氣圖中DISilo1Up是常開觸點,DoValveSilo2和DoValveSilo3是常閉觸點,DoValveSilo1是線圈,使用ST語言進行編程。 布爾邏輯操作編程例2在下面的電氣圖中MotorStart是電機啟動按鈕, MotorStop電機停止按鈕,Motor_Thermal是電機的熱保護常閉觸點,MotorRun是線圈和它的常開觸點,應如何進行編程?Page 52Confidential Property of Schneide
44、r Electric |SoMachine的的ST編程語言編程語言編程基礎 基本算術運算SoMachine提供的基本運算包括加+、減-、乘*、除/和模除Mod。 變量類型在算術運算中非常重要從下面的運算結果中可以看出變量類型對計算結果的影響,當res3為整型時,程序的編譯將直接報錯! 。Page 53Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 變量類型的隱式轉換該類型的轉換由編譯器完成。編譯器將表達式中低的數據類型轉換成高的數據類型。如果有兩種或多個類型的變量參與運算,那么必須將它們轉換成相同的類
45、型以便執行運算。 編譯器會將USINT轉為INT進行計算,如將VAR1_INT的變量類型設為USINT,編譯會報錯,提示不能轉換。Page 54Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 變量類型的顯式轉換隱式轉換不允許從較大的類型為較小的類型(例如,從 INT 到 BYTE 或從 DINT 到 WORD)。因此,必須使用顯式交換才能執行特殊的類型轉換。顯式交換基本上可以在任何基本類型之間轉換。 顯性數據類型轉換也是數據類型轉換問題。我們知道,表達式的左右兩邊要有相同的數據類型,但還需注意上面編程
46、的問題初看好像沒什么問題,但是要注意有時兩個INT的和會超過INT的范圍(-32768到32767),這時程序就應修改為: 比較指令高級編程語言ST允許比較操作的簡單結構分支。比較的結果是真(TRUE)或假(FALSE)。比較操作作為一個邏輯條件用在IF, ELSE, WHILE 和UNTIL語句中。Page 55Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 比較指令: 判斷指令:用IF語句表示判斷,這里還要用到比較操作。判斷分三部分:簡單IF語句IF ELSE語句IF ELSIF語句嵌套的IF。P
47、age 56Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 判斷指令: 最簡單的IF指令基本上,如果條件表達式的結果為TRUE就執行語句。如果條件表達式的結果是FALSE,程序就執行END_IF后面的語句。條件表達式可以是簡單關聯的語句或用運算符(and,or等)連接的復合語句Page 57Confidential Property of Schneider Electric |判斷判斷語法語法描述描述IF THENIF a b THEN1.比較 Result := 1;1.條件為真執行ELSIF T
48、HENELSIF a c THEN2.比較 (可選 ),可以有多個 Result := 2;2. 條件為真執行ELSEELSE前面 IF語句都不滿足 (可選 ) Result : = 3;3.條件為真執行END_IFEND_IF判斷結束SoMachine的的ST編程語言編程語言SoMachine的的ST編程語言編程語言編程基礎 IF-ELSE指令它是簡單IF語句的擴展。在IF結構中應該只有一個ELSE語句。當條件為 true 時執行THEN后面的代碼,當條件為 false 時執行ELSE后面的程序 IF-ELSIF-ELSE運用一個或多個ELSE_IF語句可以實現多個不同的條件,而不用多個簡單
49、的IF語句創建復雜的程序邏輯。處理器自上而下地執行判定。如果條件的結果為TRUE,那么就執行屬于這個條件的指令和命令,之后處理器就跳到判斷語句的結尾(END_IF)。在程序的一次循環中,無論下一個條件是否為TRUE,只有上面屬于第一個條件TRUE的語句被執行。如果IF或ELSIF條件都不為TRUE,那么就執行屬于ELSE下的指令。Page 58Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 嵌套的IF語句嵌套對于依賴其它條件的條件測試很有用處。一個嵌套的IF語句其優先級低于上一層的優先級,它的執行取決
50、于上一層IF條件的結果。使用嵌套時必須注意每個IF要和END_IF相匹配,否則會導致錯誤的執行順序。當if語句中的執行語句又是if語句時,則構成了if 語句嵌套的情形。其一般形式可表示如下: if(表達式) if語句; 或者為: if(表達式) if語句; else if語句;在嵌套內的if語句可能又是if-else型的,這將會出現多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。 建議在每個嵌套的IF 語句和它的執行語句中使用縮排。IF語句可以嵌套在你想要的深度,但是級數過多將占用非常多的內存,所以這嵌套最多應使用3級嵌套,如果超過三級嵌套,應重新改寫程序!練習:請使
51、用ST語言編寫程序判斷某一年是否是閏年,仿真設置不同的數值檢查程序是否正確。Page 59Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 CASE語句在CASE語句中,控制變量與幾個值作比較,如果表達式的結果與其中一個值相同,那么就執行相應的語句。如果表達式的結果與任何一個值都不相同,那么就執行象IF 語句一樣的ELSE分支。語句執行完后,繼續執行END_CASE后的程序。 CASE語句的語法: CASE語句以CASE開始,以END_CASE結束,并且各自單獨占一行。在CASE和OF之間的變量必須是U
52、INT類型。在CASE的子句中,只能使用正整數,不允許使用變量名或表達式。數字不能重疊使或在幾個區域內使用。Page 60Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 循環語句-FOR指令語法 循環次數已知時,可以用for語句實現循環結構。循環變量則從“初值”開始逐次增加到“終值INT_Var:INT; FOR := TO BY DO END_FOR; 括號 中的段為可選。 注意: 如果 等于數據類型 的最大限制值,例如變量的類型為SINT而終值設為127將導致無窮循環。Page 61Confide
53、ntial Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 循環語句-While指令 當循環次數未知,只能根據某一條件來決定是否進行循環時,用while 語句或repeat語句實現循環要更方便。如果條件最初并為“假”,則不會執行循環。如果條件最初為“真”,在程序運行中變為“假”,則循環會終止。 WHILE DO END_WHILE; 初始和當前布爾表達式必須在循環指令內的某些點設置值變為“假”。否則,循環將不會終止,導致無限、無窮循環條件。 循環語句-Repeat指令用while語句可以實現當型循環,用repeat-until
54、 語句可以實現直到型循環。repeat-until語句的含義是:重復執行循環,直到指定的條件為真時為止。REPEAT UNTIL END_REPEAT;只要 返回“真”,就會反復執行 如果 已經在第一個 UNTIL 計算生成,則只會將 執行一次。 必須在循環指令內的某些點設置值“真”。否則,循環將不會終止,導致無限、無窮循環條件。練習:請編寫程序求m!+(m+1)!+(m+2)!之和,當m=7,20時的值分別是多少?Page 62Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 循環語句-EXIT指令
55、EXIT語句是當終止條件滿足時,退出所有的循環語句。初始和當前布爾表達式必須在循環指令內的某些點設置值變為“假”。否則,循環將不會終止,導致無限、無窮循環條件。 循環語句-Contiue指令 continue語句的作用是跳過循環體中剩余的語句而強行執行下一次循環,FOR、WHILE 和 REPEAT 循環中支持 CONTINUE指令。Page 63Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 跳轉語句-JMP指令 JMP 指令用于實現程序無條件跳轉到標簽標記的代碼行。注意:使用過多的JMP會降低程序
56、的可讀性,增加程序維護的難度。 RETURN指令 使用 RETURN 指令來離開 POU,并結束后面語句的執行。Page 64Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 調用功能塊在SoMachine中使用F2功能鍵調用功能塊。下面的程序調用了上升沿功能塊。Page 65Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 上電后的初始化程序在SoMachine中常常需要進行PLC的上電初始化,這時需用到: I
57、sFirstMastCycle-第一個 MAST 循環期間返回 TRUE IsFirstMastColdCycle -下載或冷復位后的第一個循環 IsFirstMastWarmCycle-熱啟動后的第一個 MAST 循環期間返回 TRUE。Page 66Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 常用功能塊。Page 67Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 練習1在SoMachine中使用F2
58、功能鍵調用功能塊。實現按下啟動按鈕后延時兩秒啟動電機。 練習2創建一個程序來計算傳送帶上瓶子的數量。運用STANDARD 庫中的CTU (上升沿計數器)功能塊。使用CTU完成瓶子的計數,每計數24個計一箱。每5000箱一個班次Page 68Confidential Property of Schneider Electric |SoMachine的的ST編程語言編程語言編程基礎 練習3試編寫程序,實現按一下按鈕DI4選擇電機1,再按超過2秒取消選擇,DI5是電機1的啟動按鈕,DI6是電機1的停止按鈕,DI7是熱保護繼電器的端子,常閉,輸出是DQ1。請編寫程序實現上述邏輯要求。 練習4在三位的整
59、數中,例如153可以滿足13 + 53 + 33 = 153,這樣的數稱之為Armstrong數,試寫出一程式找出所有的三位數Armstrong數。練習5:請編寫程序求120之間的素數。Page 69Confidential Property of Schneider Electric |SoMachine典型編程舉例PTOPage 70Confidential Property of Schneider Electric |SoMachine典型應用編程典型應用編程PTO的配置和編程 在設備樹下選擇在設備樹下選擇Pulse_Generators選擇脈沖發生功能下選擇PTO選擇脈沖方式為脈沖加
60、方向設置輔助輸入:原點開關REF、Z脈沖和探針PROBEPage 71Confidential Property of Schneider Electric |SoMachine典型應用編程典型應用編程PTO的配置和編程 PTO的三種脈沖輸出模式的三種脈沖輸出模式正反轉脈沖脈沖加方向正交-AB兩相差90的輸出方式Page 72Confidential Property of Schneider Electric | PTO的加減速時間和的加減速時間和JerkRatioJerkRatio為0時是梯形斜坡且加減速通用JerkRatio大于0則是S曲線JerkRatio越大加減速的直線部分越短 加減
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制具加工合同標準文本
- 2024年龍巖市上杭縣客家木偶藝術傳習中心招聘筆試真題
- 2024年贛州市全南縣住房和城鄉建設局聘用人員招聘筆試真題
- 助殘居家服務合同樣本
- 醫院改造合同標準文本
- 辦公設備技術轉讓合同樣本
- 北京廣告牌制作合同樣本
- 勞務施工采購合同樣本
- 醫院改建教堂合同標準文本
- 醫院業務合同標準文本
- 恐龍無處不有(2024年山東泰安中考語文現代文閱讀試題)
- 洗車流程培訓
- 2024年開封大學高職單招職業技能測驗歷年參考題庫(頻考版)含答案解析
- 危險化學品購銷的合同范本
- 實時熒光聚合酶鏈反應臨床實驗室應用指南(WST-230-2024)
- 物流行業物流園區智慧安防方案
- 2024年出版專業資格考試《出版專業基礎知識》中級真題及答案
- 有機硅材料在電子封裝技術-洞察分析
- GB/T 45083-2024再生資源分揀中心建設和管理規范
- 中醫治療協議書范本(2篇)
- 沐足行業嚴禁黃賭毒承諾書
評論
0/150
提交評論