SoMachine-介紹和軟件編程課件_第1頁
SoMachine-介紹和軟件編程課件_第2頁
SoMachine-介紹和軟件編程課件_第3頁
SoMachine-介紹和軟件編程課件_第4頁
SoMachine-介紹和軟件編程課件_第5頁
已閱讀5頁,還剩176頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、SoMachine 軟件介紹和編程培訓(xùn)Confidential Property of Schneider Electric王兆宇2018-5-12Confidential Property of Schneider Electric |1SoMachine軟件簡介2SoMachine軟件編程入門培訓(xùn)3SoMachine典型編程舉例-HSC4SoMachine典型編程舉例-PTO5SoMachine典型編程舉例-Modbus6SoMachine典型編程舉例-CANopen7SoMachine在線編譯、診斷SoMachineConfidential Property of Schneider E

2、lectric |SoMachine V4.3 編程軟件V1 2007V2 2009V3 2011V4.12014友好的軟件界面豐富的編程語言靈活的配置方案詳實的在線幫助V4.1 SP12015V4.2 2016V4.3 2017V4.3 SP22018SoMachine V4.2/V4.3 自定義安裝Windows 7 SP1 專業(yè)版 32 位/64 位Windows 8.1專業(yè)版 32 位/64 位Windows 10專業(yè)版 32 位/64 位PC推薦配置CPU-Intel Core i7內(nèi)存-8G硬盤-15G空閑空間SoMachine 4.2/4.3 軟件下載:請關(guān)注微信號SoMachi

3、ne然后在首頁中下載SoMachine 4.1授權(quán)在4.2/3中有效SoMachine 具有強大的設(shè)備集成能力簡化機器的工程階段實現(xiàn)完整的機器設(shè)備程序,通過: 1 項目文件 1 次下載 1 根編程電纜TVDA文檔和項目文件可以重復(fù)使用在相同機器上,大量節(jié)省設(shè)計時間。注:TVDA: Tested Validated Documented Architecture Confidential Property of Schneider Electric |高級集成 設(shè)備元件本體集成在SoMachine編程軟件中, 方便使用SoMachine兼容FDT/DTM 使用FDT/DTM 的好處: 所有集成設(shè)

4、備的一致性基于統(tǒng)一的標(biāo)準(zhǔn),開放第三方產(chǎn)品的接入Confidential Property of Schneider Electric |通過拖放來配置你的設(shè)備 從設(shè)備和模塊目錄本地集成減少操作次數(shù)驅(qū)動器是預(yù)配置好的網(wǎng)絡(luò)配置已經(jīng)預(yù)設(shè)值完成現(xiàn)場總線預(yù)配置完成配置好的IO映射能夠簡化項目的開始階段自動加載庫文件第一步快速而且簡單:拖放 編譯 下載 運行 !SoMachine編程入門Confidential Property of Schneider Electric |SoMachine軟件如何啟動SoMachine和更改編程軟件的語言從窗口的開始菜單選擇SoMachine V4.2/4.3或者雙擊

5、桌面上的SoMachine V4.2/4.3打開SoMachine軟件SoMachine第一次打開后是英文版在系統(tǒng)設(shè)定-logic builder option -International setting-選擇中文,選擇后點擊OK然后退出SoMachine再重新進入就是中文界面了Confidential Property of Schneider Electric |SoMachine軟件啟動介紹SoMachine 軟件啟動畫面進入SoMachine V4.2軟件后在啟動界面下共有四個選項最近的項目-打開最近編輯過的項目連接控制器新建項目打開項目選擇新建項目后SoMachine提供4個新建項

6、目的方式,分別是:使用助手帶模塊空項目新建庫Confidential Property of Schneider Electric |SoMachine軟件創(chuàng)建新的項目使用模板使用模板中的TVDA創(chuàng)建項目在帶模板選項下面,選擇機器類型并填寫項目名稱Confidential Property of Schneider Electric |SoMachine軟件創(chuàng)建新的項目使用空項目創(chuàng)建新項目使用空項目創(chuàng)建新的項目,項目中的PLC、觸摸屏等硬件和程序需手動添加Confidential Property of Schneider Electric |SoMachine軟件創(chuàng)建新的庫使用空項目創(chuàng)建新庫

7、使用空項目創(chuàng)建新的庫-庫的名稱和庫的屬性Confidential Property of Schneider Electric |SoMachine主頁面編程環(huán)境介紹主界面簡介多選項卡導(dǎo)航器:設(shè)備樹、應(yīng)用程序樹和工具樹Confidential Property of Schneider Electric |SoMachine設(shè)備樹硬件配置在設(shè)備樹下雙擊需要編輯的條目例如需要設(shè)置高速計數(shù)器則雙擊counter,其它設(shè)置例如PTO,邏輯輸入、輸出、通訊等都使用同樣的方法 然后進行進一步設(shè)置,例如選擇高速計數(shù)器的類型為HSCsimpleIO上的擴展:Catridge、COM_Bus和IO_Bus,采

8、用右鍵菜單,選擇“添加設(shè)備”Confidential Property of Schneider Electric |SoMachine應(yīng)用程序樹編程的功能應(yīng)用程序樹包含了軟件編程核心的功能采用右鍵菜單,選擇“添加對象”,可添加的對象包括最常用的POU、跟蹤、可視化、配方.然后選擇添加程序組織單元POU,在POU中選擇此POU是程序、功能塊還是函數(shù)Confidential Property of Schneider Electric |SoMachine應(yīng)用程序樹續(xù)任務(wù)的配置和POU的調(diào)用在任務(wù)配置中可創(chuàng)建多個任務(wù), MAST任務(wù)在創(chuàng)建項目后自動創(chuàng)建選擇某一任務(wù),例如MAST任務(wù),雙擊進入任務(wù)

9、配置界面,設(shè)置任務(wù)優(yōu)先級(數(shù)值越小越高)和任務(wù)的類型,如果是循環(huán)的,則每隔一段設(shè)置的“間隔”時間自動執(zhí)行。Confidential Property of Schneider Electric |SoMachine應(yīng)用程序樹續(xù)任務(wù)的配置和POU的調(diào)用在任務(wù)配置中可設(shè)置軟件看門狗,看門狗的報警時間時間*“靈敏度” 在“添加調(diào)用”選擇在任務(wù)中執(zhí)行的程序組織單元POU 。Confidential Property of Schneider Electric |SoMachine工具樹庫文件的添加和配置施耐德提供大量的庫文件供最終用戶使用,有些庫在添加硬件時自動添加,有些庫可以手動添加在工具樹還有一個

10、重要功能是工程設(shè)置Confidential Property of Schneider Electric |SoMachine六種編程語言一FBD/LD/IL/CFC/ST/SFC梯形圖LD是基于圖形的編程語言,梯形圖語言沿襲了繼電器控制電路的形式,梯形圖是在常用的繼電器與接觸器邏輯控制基礎(chǔ)上簡化了符號演變而來的,具有形象、直觀、實用等特點,電氣技術(shù)人員容易接受,是電氣人員編程使用比較多的語言指令列表 (IL) 是一種類似匯編程序的 IEC61131-3 編程語言,適合熟練掌握機器語言的IT人員來使用,該語言支持基于累加器的編程。支持 IEC61131-3 操作符以及多輸入/多輸出、取反、注釋

11、、輸出的設(shè)置/重置和無條件/有條件跳轉(zhuǎn)。 每個指令主要通過使用 LD 操作符將值載入累加器來發(fā)揮作用。此后會使用從累加器中獲得的第一個參數(shù)執(zhí)行操作。操作的結(jié)果可在累加器中使用Confidential Property of Schneider Electric |SoMachine六種編程語言二FBD/LD/IL/CFC/ST/SFCFBD功能塊圖是面向圖形的編程語言,是一種類似于數(shù)字邏輯電路結(jié)構(gòu)的編程語言,是一種使用布爾代數(shù)的圖形邏輯符號來表示的控制邏輯,一些復(fù)雜的功能用指令框表示,適合于有數(shù)字電路基礎(chǔ)的編程人員使用。功能塊圖用類似于與門、或門的框圖來表示邏輯運算關(guān)系,方框的左側(cè)為邏輯運算的

12、輸入變量,右側(cè)為輸出變量,輸入、輸出端的小圓圈表示“非”運算,方框用“導(dǎo)線”連在一起,信號自左向右連續(xù)功能圖 (CFC) 語言是用圖形方式連接程序庫中以塊的形式提供的各種功能,包括從簡單的邏輯操作到復(fù)雜的功能塊調(diào)用。編程時將這些塊放到圖中并用線連接起來即可。功能塊自由放置,調(diào)整圖形元素,允許將功能塊的輸出反過來接到輸入。 Confidential Property of Schneider Electric |SoMachine六種編程語言三FBD/LD/IL/CFC/ST/SFCST語言是定位給程序設(shè)計者使用的,它是一個與Pascal語言相類似的高級程序設(shè)計語言.程序包含了一些象DO - W

13、HILE、REPEAT - UNTIL、FOR - TO - DO、IF - THEN - ELSE、CASE - OF的結(jié)構(gòu)語句使用,方便用戶編程,雖然不直觀,但是編程方便,相比梯形圖來說占用空間小,建議使用SoMachine軟件的編程人員都要掌握這種編程方法。SFC順序功能圖,也稱為順序功能流程圖,是一種強大的描述控制程序的順序行為特征的圖形化語言,可對復(fù)雜的過程或操作由頂?shù)降椎剡M行輔助開發(fā),特別適合用于有固定流程的工藝過程。SFC允許一個復(fù)雜的問題逐層地分解為步和較小的能夠被詳細(xì)分析的順序。SFC本身不是一種獨立的語言. 一個用SFC編寫的程序看上去就象一個方框圖,這個方框圖由程序塊(梯

14、階)、步間的轉(zhuǎn)換和發(fā)生這些轉(zhuǎn)換時所依賴的條件組成。Confidential Property of Schneider Electric |SoMachine編程中的變量聲明變量聲明可通過以下方式聲明一個變量:在軟件目錄的變量視圖中 在 POU 的聲明編輯器中-手動添加,常用 通過自動聲明對話框 最常用在 DUT 編輯器中在 GVL 編輯器中-手動添加,常用變量聲明的語法: AT : :=; :=這部分根據(jù)需要填寫,可以沒有初始值。變量的數(shù)據(jù)類型VAR_INPUT、 VAR_OUTPUT、 VAR_IN_OUT、 VAR_GLOBAL、 VAR_TEMP、 VAR_STAT、VAR_EXTER

15、NAL、 VAR_CONFIGConfidential Property of Schneider Electric |SoMachine編程中的變量聲明變量聲明變量數(shù)值的斷電保持(剩余變量和保留持久性變量):前 1000 個 %MW 會自動持久保留,如果沒有使用AT指令與這些變量關(guān)聯(lián)。它們的值在重新啟動/熱復(fù)位/冷復(fù)位后得到保留。在GVL編輯器中聲明為VAR GLOBAL PERSISTENT RETAIN,即將變量m1聲明為保留持久性變量Confidential Property of Schneider Electric |SoMachine的梯形圖編程界面和常用指令梯形圖的編程在FBD

16、/LD/IL編輯器中,可選擇梯形圖編程時的所有元素包括:插入新的網(wǎng)絡(luò)(即新的梯級)、常開、常閉、上升沿、下降沿觸點、串聯(lián)或并聯(lián)觸點、線圈、(置位線圈、復(fù)位線圈、取反線圈)、定時器(TON,TOFF,TP)、比較器可插入跳轉(zhuǎn)或返回return可通過空功能塊調(diào)用庫中或用戶自己編寫的功能塊可插入分支通過視圖可以將程序在FBD、IL或LD三種語言中切換推薦用戶盡快熟悉和使用ST編程語言Confidential Property of Schneider Electric |SoMachine的常用指令常用基本指令基本算術(shù)指令(由 IEC1131-3 標(biāo)準(zhǔn)規(guī)定)可用: ADD 加、MUL -乘、SUB

17、減、DIV 除、MOD-取余數(shù)、MOVE 賦值操作邏輯操作操作符可用(與 IEC1131-3 標(biāo)準(zhǔn)匹配):AND-與、OR-或、XOR 異或、NOT-取反移位操作符SHL-用于操作數(shù)的逐位左移位的 IEC 操作符。 erg:= SHL (in, n)in:將向左移位的操作數(shù) ;n:in 向左進行移位的位數(shù)SHR -用于操作數(shù)的逐位左移位的 IEC 操作符ROL 循環(huán)左移ROR-循環(huán)右移 Confidential Property of Schneider Electric |SoMachine的常用指令常用基本指令移位操作符SHR-用于操作數(shù)的逐位右移位的 IEC 操作符,左側(cè)以0填充。 er

18、g:= SHR(in, n)in:將向右移位的操作數(shù) ;n:in 向左進行移位的位數(shù)ROL-循環(huán)左移用于對操作數(shù)進行向左逐位旋轉(zhuǎn)的 IEC 操作符。 允許的數(shù)據(jù)類型 :BYTE 、WORD 、DWORD、LWORD in 將 n 次向左進行 1 個位置的移位,而距離左側(cè)最遠(yuǎn)的位將從右側(cè)重新插入 例:ROR-循環(huán)右移Confidential Property of Schneider Electric |SoMachine的常用指令常用基本指令選擇操作符SEL-選擇操作符還可以通過變量來執(zhí)行。用于二進制選擇的 IEC 選擇操作符。 G 將決定是否把 IN0 或 IN1 分配到 OUT。 OUT:

19、=SEL(G,IN0,IN1) ;則if G=FALSE ,OUT:=IN0; if G=TRUE OUT:=IN1MAX-取兩個值中的最大值MIN-取兩個值中的最小值LIMIT-限制函數(shù)OUT := LIMIT(Min, IN, Max) N (MAX (IN, Min), Max)Max 是結(jié)果的上限,而 Min 是結(jié)果的下限。如果值 IN 超出上限 Max, 則 LIMIT 將返回 Max。如果 IN 低于 Min,則結(jié)果將為 Min。 IN 和 OUT 可以是任何類型的變量。 Confidential Property of Schneider Electric |SoMachine的

20、常用指令常用基本指令選擇操作符MUX-選擇操作符還可以通過變量來執(zhí)行IEC 選擇操作符,用于多路復(fù)用操作。 OUT := MUX(K, IN0,.,INn) 意味著: OUT := INkIN0, .,INn 和 OUT 可以是任何類型的變量。 K 必須是 BYTE, WORD, DWORD, LWORD, SINT, USINT, INT, UINT, DINT, LINT, ULINT 或 UDINT。 MUX 用于從一組值中選擇第 K 個值。 IN 和 OUT 可以是任何類型的變量。 Confidential Property of Schneider Electric |SoMachi

21、ne的梯形圖編程界面和常用指令常用基本指令比較操作符GT GT 操作符是布爾操作符,當(dāng)?shù)谝粋€操作數(shù)的值大于第二個操作數(shù)的值時,返回值 TRUE。 LT LT 操作符是布爾操作符,當(dāng)?shù)谝粋€操作數(shù)的值小于第二個操作數(shù)的值時,返回值 TRUE。LE LE 操作符是布爾操作符,當(dāng)?shù)谝粋€操作數(shù)的值小于或等于第二個操作數(shù)的值時,返回值 TRUE。 GE-GE 操作符是布爾操作符,當(dāng)?shù)谝粋€操作數(shù)的值大于或等于第二個操作數(shù)的值時,返回值 TRUE。EQ EQ 操作符是布爾操作符,當(dāng)兩個操作數(shù)相等時,返回值 TRUE。NE NE 操作符是布爾操作符,當(dāng)操作數(shù)不相等時,返回值 TRUE。 地址操作符ADR-ADR

22、 用于返回其參數(shù)的地址,以 DWORD 為數(shù)據(jù)類型。此地址可以分配給工程中的指針。-可以用內(nèi)容操作符,傳遞指針指向的內(nèi)容例如pt:=ADR(var_int1); var_int2:=pt;Confidential Property of Schneider Electric |SoMachine的梯形圖編程界面和常用指令常用基本指令顯式轉(zhuǎn)換操作符BOOL_TO 轉(zhuǎn)換 TO_BOOL 轉(zhuǎn)換 整數(shù)類型之間的轉(zhuǎn)換 REAL_TO-/ LREAL_TO 轉(zhuǎn)換 TIME_TO/TIME_OF_DAY 轉(zhuǎn)換 DATE_TO/DT_TO 轉(zhuǎn)換 STRING_TO 轉(zhuǎn)換 TRUNC(浮點數(shù)轉(zhuǎn)換為 DINT)

23、TRUNC_INT ANY_NUM_TO_ ANY_._TO 轉(zhuǎn)換 。 Confidential Property of Schneider Electric |SoMachine的梯形圖編程界面和常用指令常用基本指令數(shù)學(xué)函數(shù)ABS-絕對值 SQRT 開根號LN 自然對數(shù)LOG -返回以 10 為底數(shù)的數(shù)字的對數(shù)值。EXP -數(shù)字 IEC操作符,用于返回指數(shù)函數(shù)SIN -用于返回角的正弦值。以弧度為單位,輸出變量必須是 REAL 或 LREAL 類型。COS- 余弦函數(shù)TAN-正切函數(shù) ASIN 反正弦ACOS 反余弦ATAN 反正切EXPT -用于使用一個變量對另一個變量求冪 Confide

24、ntial Property of Schneider Electric |SoMachine的在線仿真和調(diào)試技巧Confidential Property of Schneider Electric |SoMachine的在線仿真程序的在線仿真通過編譯等選項查找程序的語法錯誤后,可使用仿真查找程序中可能存在的邏輯錯誤仿真功能可以在不連接到實際PLC進行軟件的調(diào)試在“在線”菜單下勾選“仿真”然后在設(shè)備樹選擇在線的“codesys”然后登陸如果項目是最新的,要重新檢查,點擊:重新編譯Confidential Property of Schneider Electric |SoMachine的在線

25、仿真-續(xù)程序的在線仿真在彈出的對話框確認(rèn)選擇“Yes”選擇登錄到仿真PLC“W7CN10212000810”然后SoMachine提示仿真器沒有程序,在對話框中選擇“是”SoMachine將下載程序,程序下載后點擊運行程序運行后在編程軟件中顯示“運行”Confidential Property of Schneider Electric |SoMachine的在線仿真-續(xù)程序的在線仿真程序運行后,先在準(zhǔn)備值中設(shè)好需要的數(shù)據(jù)值,然后按CTRL+F7修改值如果需要更改變量的顯示模式例如改為16進制顯示,“調(diào)試”-“顯示模式”-“16進制”Confidential Property of Schne

26、ider Electric |SoMachine的在線仿真程序的變量監(jiān)視程序運行后,可以在監(jiān)視窗口添加要監(jiān)視的變量,這樣調(diào)整程序中的問題更方便Confidential Property of Schneider Electric |SoMachine的在線仿真程序的變量的交叉參數(shù)和查找當(dāng)程序比較大, 變量被多次讀寫和調(diào)用,這時可以使用交叉參考和程序搜索功能幫助查找問題直接按Ctrl+F,查找的結(jié)果在消息變量對話框中Confidential Property of Schneider Electric |SoMachine的內(nèi)部畫面和功能塊演示Confidential Property of S

27、chneider Electric |SoMachine的內(nèi)部畫面首先創(chuàng)建一個CFC編程的POU,加入ATV320控制功能塊,然后創(chuàng)建SoMachine內(nèi)部畫面Confidential Property of Schneider Electric |SoMachine的內(nèi)部畫面添加內(nèi)部畫面完成后,在內(nèi)部畫面中選擇Frame加入Confidential Property of Schneider Electric |SoMachine的內(nèi)部畫面在內(nèi)部畫面中選擇Control_ATV功能塊,然后在m_input中的.,在輸入助手中關(guān)聯(lián)POU中的功能塊實例Confidential Property

28、of Schneider Electric |SoMachine項目相關(guān)練習(xí)編程基礎(chǔ)練習(xí)1在SoMachine中新建TM241的項目。練習(xí)2打開一個IMC卡的TVDA項目,觀察此TVDA項目的結(jié)構(gòu)。練習(xí)3創(chuàng)建一個庫文件,用于實現(xiàn)卷徑的計算,卷徑采用R=R0+2*h*m,其中R是實時卷徑,R0是卷筒的直徑、h為卷材的厚度,m為卷材的圈數(shù)。編程語言不限,要求編寫實現(xiàn)此運算的功能塊的編譯庫,并在新項目中添加并完成調(diào)用。Confidential Property of Schneider Electric |SoMachine的ST編程語言Confidential Property of Schnei

29、der Electric |SoMachine的ST編程語言梯形圖的編程結(jié)構(gòu)文本是一種高級語言,如果你知道如何使用高級語言來編程,像:Basic、PACSAL或C,那么你會很輕松的掌握Structured Text(ST)編程;如果了解這些高級語言,你也會看到ST有著簡單、標(biāo)準(zhǔn)的結(jié)構(gòu),程序運行高效、閱讀程序簡潔易懂等突出的優(yōu)點。ST使用了高級語言的許多傳統(tǒng)特性,包括:變量、操作符和控制流程語句。ST提供以下功能:數(shù)字量和模擬量I/O邏輯操作和邏輯比較表達式算術(shù)運算判斷語句循環(huán)語句功能塊可選用的動態(tài)變量診斷工具Confidential Property of Schneider Electric

30、 |SoMachine的ST編程語言編程基礎(chǔ)表達式表達式是指返回變量評估值的結(jié)構(gòu)。表達式由操作符和操作數(shù)組成。操作數(shù)可以是常量,變量,調(diào)用函數(shù)或其它表達式。賦值操作符通過一個表達式和一個值來給變量賦值。賦值語句包括位于左邊的變量,賦值操作符“:=”,及后邊需要計算的表達式。所有的語句,包括賦值語句,必須要以分號“;”結(jié)尾。注意“=”是比較兩者是否相等!注釋雖然注釋經(jīng)常被刪掉,但它們是源代碼中非常重要的一部分。它們解釋了一部分代碼,使程序更易讀懂。注釋幫助你或其他人讀你的程序,即使過去了很長時間。注釋不被編譯,因此不會影響程序的執(zhí)行。注釋應(yīng)該用一對星號和小括號括起來“(*comment*)”或者

31、在原有的程序加兩個反斜杠“/”使原來的程序不起作用Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)操作符優(yōu)先級如果在一個表達式中使用幾個操作符,就會出現(xiàn)優(yōu)先級的問題(執(zhí)行的順序)。操作符按優(yōu)先級的順序來執(zhí)行。在任何一個表達式中,首先執(zhí)行最高級別的操作符,接著執(zhí)行低一級的操作符,等等,直到執(zhí)行完所有的操作符。具有相同級別的操作符按照書寫順序從左至右依次執(zhí)行。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)SoMachine的數(shù)據(jù)類型S

32、oMachine的數(shù)據(jù)類型分為兩類:標(biāo)準(zhǔn)型和用戶定義類型。標(biāo)準(zhǔn)型的數(shù)據(jù)類型BOOL 、整數(shù) 、REAL / LREAL 、STRING 、時間數(shù)據(jù)類型(TOD 和DT)和某些標(biāo)準(zhǔn)型的擴展Confidential Property of Schneider Electric |數(shù)據(jù)類型 下限 上限 存儲器空間 BYTE 0 255 8 位 WORD 0 65,535 16 位 DWORD 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

33、,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+30864位TIME或LTIME類型舉例TIME1:=T#14ms;TIME1:=T#100S12ms;TIME1:=t#12h34m15s;LTIME1:=LTIME#1000d15h23m12s34ms2us44nsDAT

34、E 值可以內(nèi)部方式處理為 DWORD 值,包含從 1970 年 01 月 01 日 00:00 時鐘時間開始的時間范圍,以秒為單位。 例如: DATE#1996-05-06d#1972-03-29TIME_OF_DAY 值可以內(nèi)部方式處理為 DWORD 值,包含從 00:00 時鐘時間開始的時間范圍,以毫秒為單位。 例如TIME_OF_DAY#15:36:30.123tod#00:00:00SoMachine的ST編程語言數(shù)組和結(jié)構(gòu)擴展的數(shù)據(jù)類型-數(shù)組支持將一維、兩維或三維數(shù)組。在 POU 的聲明部分以及全局變量中定義數(shù)組。還可以使用隱式邊界檢查。 :ARRAY.,.,.OF ,其中,ll1,

35、ll2,ll3 標(biāo)識字段范圍的下限。 ul1,ul2 和 ul3 標(biāo)識字段范圍的上限。 范圍值必須為整數(shù)類型。 例如聲明一個撲克牌的二維數(shù)組:Card_game:ARRAY1.13,1.4OFINT;數(shù)組初始化舉例:arr1:ARRAY1.5OFINT:=1,2,3,4,5; 擴展的數(shù)據(jù)類型-結(jié)構(gòu)在工廠生產(chǎn)產(chǎn)品的出廠信息包括了名字、批次、出廠日期等等數(shù)據(jù),無法用一種數(shù)據(jù)類型進行描述,這時要用到結(jié)構(gòu)體數(shù)據(jù)類型。 TYPE: STRUCT . END_STRUCT END_TYPE 是在工程中識別的類型,并且可以用作標(biāo)準(zhǔn)數(shù)據(jù)類型。 結(jié)構(gòu)體允許嵌套但是不支持AT指令。多邊形的結(jié)構(gòu)定義示例: TYPE

36、 Polygonline:STRUCT Start:ARRAY 1.2 OF INT; Point1:ARRAY 1.2 OF INT; Point2:ARRAY 1.2 OF INT; Point3:ARRAY 1.2 OF INT; Point4:ARRAY 1.2 OF INT; End:ARRAY 1.2 OF INT;END_STRUCTConfidential Property of Schneider Electric |SoMachine的ST編程語言枚舉擴展的數(shù)據(jù)類型-枚舉一個星期七天,一年只有十二個月,紅綠燈有紅、白、藍三個顏色等等。串口校驗方式:奇、偶、無。CANopen

37、的狀態(tài):語法 TYPE(,.,)|;END_TYPE 類型的變量可以采用下列其中一個枚舉值 并且將以第一個枚舉值進行初始化。這些值與整數(shù)兼容!如果枚舉值未以聲明中的特定值進行初始化,則計數(shù)將從 0 開始。初始化時,請確保初始值在組件行中增加。 Confidential Property of Schneider Electric |INIT 初始化0RESET_COMM復(fù)位通訊1RESET_APP復(fù)位應(yīng)用2PRE_OPERATIONAL預(yù)處理3STOPPED停止4OPERATIONAL正常運行5UNKNOWN未知6NOT_AVAIL不可用7SoMachine的ST編程語言編程基礎(chǔ)布爾邏輯操作布

38、爾邏輯操作的操作數(shù)可以是BOOL、字節(jié)、字、雙字或長雙字等類型。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)布爾邏輯操作編程舉例1在下面的電氣圖中DISilo1Up是常開觸點,DoValveSilo2和DoValveSilo3是常閉觸點,DoValveSilo1是線圈,使用ST語言進行編程。布爾邏輯操作編程例2在下面的電氣圖中MotorStart是電機啟動按鈕, MotorStop電機停止按鈕,Motor_Thermal是電機的熱保護常閉觸點,MotorRun是線圈和它的常開觸點,應(yīng)如何進行編程?Confid

39、ential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)基本算術(shù)運算SoMachine提供的基本運算包括加+、減-、乘*、除/和模除Mod。變量類型在算術(shù)運算中非常重要從下面的運算結(jié)果中可以看出變量類型對計算結(jié)果的影響,當(dāng)res3為整型時,程序的編譯將直接報錯!。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)變量類型的隱式轉(zhuǎn)換該類型的轉(zhuǎn)換由編譯器完成。編譯器將表達式中低的數(shù)據(jù)類型轉(zhuǎn)換成高的數(shù)據(jù)類型。如果有兩種或多個類型的變量參與運算,那么必須將它們轉(zhuǎn)

40、換成相同的類型以便執(zhí)行運算。編譯器會將USINT轉(zhuǎn)為INT進行計算,如將VAR1_INT的變量類型設(shè)為USINT,編譯會報錯,提示不能轉(zhuǎn)換。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)變量類型的顯式轉(zhuǎn)換隱式轉(zhuǎn)換不允許從較大的類型為較小的類型(例如,從 INT 到 BYTE 或從 DINT 到 WORD)。因此,必須使用顯式交換才能執(zhí)行特殊的類型轉(zhuǎn)換。顯式交換基本上可以在任何基本類型之間轉(zhuǎn)換。顯性數(shù)據(jù)類型轉(zhuǎn)換也是數(shù)據(jù)類型轉(zhuǎn)換問題。我們知道,表達式的左右兩邊要有相同的數(shù)據(jù)類型,但還需注意上面編程的問題初看好像沒什

41、么問題,但是要注意有時兩個INT的和會超過INT的范圍(-32768到32767),這時程序就應(yīng)修改為:比較指令高級編程語言ST允許比較操作的簡單結(jié)構(gòu)分支。比較的結(jié)果是真(TRUE)或假(FALSE)。比較操作作為一個邏輯條件用在IF, ELSE, WHILE 和UNTIL語句中。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)比較指令:判斷指令:用IF語句表示判斷,這里還要用到比較操作。判斷分三部分:簡單IF語句IF ELSE語句IF ELSIF語句嵌套的IF。Confidential Property of

42、Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)判斷指令:最簡單的IF指令基本上,如果條件表達式的結(jié)果為TRUE就執(zhí)行語句。如果條件表達式的結(jié)果是FALSE,程序就執(zhí)行END_IF后面的語句。條件表達式可以是簡單關(guān)聯(lián)的語句或用運算符(and,or等)連接的復(fù)合語句Confidential Property of Schneider Electric |判斷語法描述IF THENIF a b THEN1.比較Result := 1;1.條件為真執(zhí)行ELSIF THENELSIF a c THEN2.比較 (可選 ),可以有多個Result := 2;2. 條件為真

43、執(zhí)行ELSEELSE前面 IF語句都不滿足 (可選 )Result : = 3;3.條件為真執(zhí)行END_IFEND_IF判斷結(jié)束SoMachine的ST編程語言SoMachine的ST編程語言編程基礎(chǔ)IF-ELSE指令它是簡單IF語句的擴展。在IF結(jié)構(gòu)中應(yīng)該只有一個ELSE語句。當(dāng)條件為 true 時執(zhí)行THEN后面的代碼,當(dāng)條件為 false 時執(zhí)行ELSE后面的程序IF-ELSIF-ELSE運用一個或多個ELSE_IF語句可以實現(xiàn)多個不同的條件,而不用多個簡單的IF語句創(chuàng)建復(fù)雜的程序邏輯。處理器自上而下地執(zhí)行判定。如果條件的結(jié)果為TRUE,那么就執(zhí)行屬于這個條件的指令和命令,之后處理器就跳

44、到判斷語句的結(jié)尾(END_IF)。在程序的一次循環(huán)中,無論下一個條件是否為TRUE,只有上面屬于第一個條件TRUE的語句被執(zhí)行。如果IF或ELSIF條件都不為TRUE,那么就執(zhí)行屬于ELSE下的指令。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)嵌套的IF語句嵌套對于依賴其它條件的條件測試很有用處。一個嵌套的IF語句其優(yōu)先級低于上一層的優(yōu)先級,它的執(zhí)行取決于上一層IF條件的結(jié)果。使用嵌套時必須注意每個IF要和END_IF相匹配,否則會導(dǎo)致錯誤的執(zhí)行順序。當(dāng)if語句中的執(zhí)行語句又是if語句時,則構(gòu)成了if 語句嵌

45、套的情形。其一般形式可表示如下: if(表達式) if語句;或者為: if(表達式) if語句; else if語句;在嵌套內(nèi)的if語句可能又是if-else型的,這將會出現(xiàn)多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。建議在每個嵌套的IF 語句和它的執(zhí)行語句中使用縮排。IF語句可以嵌套在你想要的深度,但是級數(shù)過多將占用非常多的內(nèi)存,所以這嵌套最多應(yīng)使用3級嵌套,如果超過三級嵌套,應(yīng)重新改寫程序!練習(xí):請使用ST語言編寫程序判斷某一年是否是閏年,仿真設(shè)置不同的數(shù)值檢查程序是否正確。Confidential Property of Schneider Electric

46、 |SoMachine的ST編程語言編程基礎(chǔ)CASE語句在CASE語句中,控制變量與幾個值作比較,如果表達式的結(jié)果與其中一個值相同,那么就執(zhí)行相應(yīng)的語句。如果表達式的結(jié)果與任何一個值都不相同,那么就執(zhí)行象IF 語句一樣的ELSE分支。語句執(zhí)行完后,繼續(xù)執(zhí)行END_CASE后的程序。CASE語句的語法:CASE語句以CASE開始,以END_CASE結(jié)束,并且各自單獨占一行。在CASE和OF之間的變量必須是UINT類型。在CASE的子句中,只能使用正整數(shù),不允許使用變量名或表達式。數(shù)字不能重疊使或在幾個區(qū)域內(nèi)使用。Confidential Property of Schneider Electri

47、c |SoMachine的ST編程語言編程基礎(chǔ)循環(huán)語句-FOR指令語法 循環(huán)次數(shù)已知時,可以用for語句實現(xiàn)循環(huán)結(jié)構(gòu)。循環(huán)變量則從“初值”開始逐次增加到“終值INT_Var:INT; FOR := TO BY DO END_FOR; 括號 中的段為可選。 注意: 如果 等于數(shù)據(jù)類型 的最大限制值,例如變量的類型為SINT而終值設(shè)為127將導(dǎo)致無窮循環(huán)。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)循環(huán)語句-While指令 當(dāng)循環(huán)次數(shù)未知,只能根據(jù)某一條件來決定是否進行循環(huán)時,用while語句或repeat語句實

48、現(xiàn)循環(huán)要更方便。如果條件最初并為“假”,則不會執(zhí)行循環(huán)。如果條件最初為“真”,在程序運行中變?yōu)椤凹佟?,則循環(huán)會終止。 WHILE DO END_WHILE; 初始和當(dāng)前布爾表達式必須在循環(huán)指令內(nèi)的某些點設(shè)置值變?yōu)椤凹佟?。否則,循環(huán)將不會終止,導(dǎo)致無限、無窮循環(huán)條件。循環(huán)語句-Repeat指令用while語句可以實現(xiàn)當(dāng)型循環(huán),用repeat-until語句可以實現(xiàn)直到型循環(huán)。repeat-until語句的含義是:重復(fù)執(zhí)行循環(huán),直到指定的條件為真時為止。REPEAT UNTIL END_REPEAT;只要 返回“真”,就會反復(fù)執(zhí)行 如果 已經(jīng)在第一個 UNTIL 計算生成,則只會將 執(zhí)行一次。 必

49、須在循環(huán)指令內(nèi)的某些點設(shè)置值“真”。否則,循環(huán)將不會終止,導(dǎo)致無限、無窮循環(huán)條件。練習(xí):請編寫程序求m!+(m+1)!+(m+2)!之和,當(dāng)m=7,20時的值分別是多少?Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)循環(huán)語句-EXIT指令 EXIT語句是當(dāng)終止條件滿足時,退出所有的循環(huán)語句。初始和當(dāng)前布爾表達式必須在循環(huán)指令內(nèi)的某些點設(shè)置值變?yōu)椤凹佟?。否則,循環(huán)將不會終止,導(dǎo)致無限、無窮循環(huán)條件。循環(huán)語句-Contiue指令 continue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán),F(xiàn)OR、WHI

50、LE 和 REPEAT 循環(huán)中支持 CONTINUE指令。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)跳轉(zhuǎn)語句-JMP指令 JMP 指令用于實現(xiàn)程序無條件跳轉(zhuǎn)到標(biāo)簽標(biāo)記的代碼行。注意:使用過多的JMP會降低程序的可讀性,增加程序維護的難度。RETURN指令 使用 RETURN 指令來離開 POU,并結(jié)束后面語句的執(zhí)行。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)調(diào)用功能塊在SoMachine中使用F2功能鍵調(diào)用功能塊。下面的

51、程序調(diào)用了上升沿功能塊。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)上電后的初始化程序在SoMachine中常常需要進行PLC的上電初始化,這時需用到:IsFirstMastCycle-第一個 MAST 循環(huán)期間返回 TRUEIsFirstMastColdCycle -下載或冷復(fù)位后的第一個循環(huán) IsFirstMastWarmCycle-熱啟動后的第一個 MAST 循環(huán)期間返回 TRUE。Confidential Property of Schneider Electric |SoMachine的ST編程語言

52、編程基礎(chǔ)常用功能塊。Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)練習(xí)1在SoMachine中使用F2功能鍵調(diào)用功能塊。實現(xiàn)按下啟動按鈕后延時兩秒啟動電機。練習(xí)2創(chuàng)建一個程序來計算傳送帶上瓶子的數(shù)量。運用STANDARD 庫中的CTU (上升沿計數(shù)器)功能塊。使用CTU完成瓶子的計數(shù),每計數(shù)24個計一箱。每5000箱一個班次Confidential Property of Schneider Electric |SoMachine的ST編程語言編程基礎(chǔ)練習(xí)3試編寫程序,實現(xiàn)按一下按鈕DI4選擇電機1,再按超過2

53、秒取消選擇,DI5是電機1的啟動按鈕,DI6是電機1的停止按鈕,DI7是熱保護繼電器的端子,常閉,輸出是DQ1。請編寫程序?qū)崿F(xiàn)上述邏輯要求。練習(xí)4在三位的整數(shù)中,例如153可以滿足13 + 53 + 33 = 153,這樣的數(shù)稱之為Armstrong數(shù),試寫出一程式找出所有的三位數(shù)Armstrong數(shù)。練習(xí)5:請編寫程序求120之間的素數(shù)。Confidential Property of Schneider Electric |SoMachine典型編程舉例PTOConfidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的配置

54、和編程在設(shè)備樹下選擇Pulse_Generators選擇脈沖發(fā)生功能下選擇PTO選擇脈沖方式為脈沖加方向設(shè)置輔助輸入:原點開關(guān)REF、Z脈沖和探針PROBEConfidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的配置和編程PTO的三種脈沖輸出模式正反轉(zhuǎn)脈沖脈沖加方向正交-AB兩相差90的輸出方式Confidential Property of Schneider Electric |PTO的加減速時間和JerkRatioJerkRatio為0時是梯形斜坡且加減速通用JerkRatio大于0則是S曲線JerkRatio越大加

55、減速的直線部分越短加減速單位以赫茲/毫秒表示,代表速度變化比率。 以毫秒表示,代表從 0 上升到最大速度所需的時間。 SoMachine典型應(yīng)用編程PTO的配置和編程PTO的限位軟件限位在PTO的配置中默認(rèn)范圍是在 -2,147,483,648 到 2,147,483,647 ,并要求正軟件限位的值要大于負(fù)軟件限位的值Confidential Property of Schneider Electric |PTO的硬件限位硬件限位在PTO_Power功能塊的MC_Power_PTO.LimP 和 MC_Power_PTO.LimN正負(fù)限位管腳上硬件限位要求必須是常閉PTO配置中的幾個參數(shù)說明啟

56、動速度:是步進電機拖動負(fù)載且不失步的情況下可以開始移動的最小頻率。當(dāng)從速度 0 開始運動時使用啟動速度參數(shù),此速度應(yīng)小于最大速度。停止速度:是步進電機拖動負(fù)載且不失步的情況下停止移動的最大頻率。僅當(dāng)從高于停止速度的速度降速到速度 0 時,使用停止速度。最大速度:機械或電機允許的最大運行速度。SoMachine典型應(yīng)用編程PTO的配置和編程PTO的功能塊分為兩類運動功能塊管理功能塊Confidential Property of Schneider Electric |PTO的模式切換狀態(tài)圖SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Power_PTOMC_Power_PTO 功

57、能塊的status輸出為真是其它運動功能塊的執(zhí)行前提。功能塊的Drive_Ready輸入是驅(qū)動器的外部準(zhǔn)備完成,必須為真才能使能。LimP和LimN可以外接硬件限位,這時硬件限位必須接到PLC的邏輯輸入上,如不使用硬件限位,將這兩個輸入置位為TrueAxis的管腳輸入填入在硬件配置中的名字,默認(rèn)為PTO_0或PTO_1功能塊輸出Error在檢測到錯誤時置位為真,功能塊執(zhí)行結(jié)束,可在ErrorID檢查故障碼,方便查找故障的原因Confidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Home_PTO和MC

58、_Setposition_PTOMC_Home_PTO 功能塊的用于伺服的回原點,原點開關(guān)在PTO配置中開啟原點開關(guān)必須接到PLC而不是伺服。Execute上升沿執(zhí)行功能塊,Direction只接受mcPositiveDirection 和 mcNegativeDirection 。Axis的管腳填入在硬件配置中的名字,默認(rèn)為PTO_0或PTO_1功能塊輸出Error在檢測到錯誤時置位為真,在ErrorID檢查故障碼,幫助查找故障的原因PTO的MC_Home_PTO 回零模式共有六種:長參考,正向(負(fù)向)回歸到反向(前向)的參考開關(guān)下降沿。長參考和索引, 短參考反向,短參考無反向,短參考和索引

59、在外,短參考和索引在內(nèi)。Confidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Home_PTO回原點模式長參考和索引正向(反向),回歸到反向(前向)參考開關(guān)下降沿后的第一個索引。此回原點模式必須配置REF和INDEX兩個邏輯輸入 Confidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Home_PTO回原點模式短參考反向正向(反向),回歸到前向的參考開關(guān)上升沿。這種回原點方式可以實現(xiàn)碰到一側(cè)硬限位反向。Co

60、nfidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Home_PTO回原點模式短參考無反向正向(反向),低速回歸到前向(反向)的參考開關(guān)上升(下降)沿,無反向。碰到硬限位報錯。Confidential Property of Schneider Electric |SoMachine典型應(yīng)用編程PTO的運動模塊PTO的MC_Home_PTO回原點模式短參考和索引在外正向(反向),回歸到前向參考開關(guān)轉(zhuǎn)換開啟和關(guān)閉后的第一個索引(Z相脈沖)。Confidential Property of Schneid

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論