應(yīng)用領(lǐng)域 | 環(huán)保,化工,生物產(chǎn)業(yè),電子,電氣 |
---|
使用'不滿足條件時執(zhí)行'指令可以重復(fù)執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(True 或 False)的表達式??梢詫⑦壿嫳磉_式或比較表達式作為條件。
![]() |
參考價 | 面議 |
更新時間:2023-08-14 14:08:06瀏覽次數(shù):371
聯(lián)系我們時請說明是化工儀器網(wǎng)上看到的信息,謝謝!
6ES7512-1SK01-0AB0
數(shù)字化一般被稱為“第四次工業(yè)革命",實際上它在幾年前就已經(jīng)開始了。它經(jīng)歷了一個逐漸演變的過程。它很重要的一點就是在生產(chǎn)中體現(xiàn)一種"改變“。
目前,制造業(yè)面臨著這些主要需求:速度,靈活性,質(zhì)量,效率。還有很重要的一點就是網(wǎng)絡(luò)和信息安全。
我們做這些不僅僅是為了自身,更是為了用戶受益。節(jié)省生產(chǎn)時間,大幅提高生產(chǎn)的靈活性,生產(chǎn)定制化的產(chǎn)品,提高生產(chǎn)效率和產(chǎn)品質(zhì)量,這些都是我們用戶亟待解決的問題??梢酝ㄟ^我們的客戶了解更多具體的例子。
下面,我闡述下西門子如何進行整個價值鏈的整合及數(shù)字化轉(zhuǎn)型。自動化并不是近十年才出現(xiàn)的概念,自動化已經(jīng)在很多地方得到應(yīng)用和體現(xiàn)。從產(chǎn)品設(shè)計,生產(chǎn)規(guī)劃,生產(chǎn)制造和服務(wù)都可以進行數(shù)字化改造。另一方面,我們重要的創(chuàng)新體現(xiàn)在整個價值鏈的數(shù)字化雙胞胎。
我們通過Teamcenter協(xié)作平臺,將數(shù)字化雙胞胎模型發(fā)布到所有相關(guān)方,包括供應(yīng)商。
下面來介紹一下針對最終用戶和機械制造商(OEM)的整體方案,從從產(chǎn)品設(shè)計,生產(chǎn)規(guī)劃,生產(chǎn)制造和服務(wù)我們可以進行一些模擬。下面介紹一些用戶的具體案例:
首先,在產(chǎn)品的設(shè)計環(huán)節(jié)中集成了CAD/CAM/CAE技術(shù),我們會構(gòu)建3D模型進行仿真,我們可以調(diào)用數(shù)據(jù)庫,進行模型仿真分析,通過仿真結(jié)果得到產(chǎn)品的相應(yīng)參數(shù)。你可以直觀的看到你設(shè)計的產(chǎn)品,你可以決定你的產(chǎn)品。
下面到了生產(chǎn)規(guī)劃環(huán)節(jié),我們可以通過人體仿真技術(shù)模擬它的組裝,分揀等生產(chǎn)活動,實現(xiàn)裝配流程的仿真,分析和優(yōu)化,并得到最佳人體工程學(xué)參數(shù)。實現(xiàn)生產(chǎn)系統(tǒng),物流流程的最佳仿真,可視化,分析和優(yōu)化。
接下來是生產(chǎn)工程環(huán)節(jié)的機電一體化工程與虛擬調(diào)試。自動化工程為TIA博途生成PLC程序代碼。
在生產(chǎn)制造環(huán)節(jié)中,通過MES和TIA,協(xié)同實現(xiàn)最佳個性化產(chǎn)品生產(chǎn)。
最終通過數(shù)字化的開放的工業(yè)軟件平臺實現(xiàn)生命周期和數(shù)據(jù)分析。
針對機械制造商的整體方案,實現(xiàn)從機械設(shè)計到服務(wù)的橫向集成,滿足客戶的定制化需求。
我們提供的數(shù)字化企業(yè)套件可以的契合客戶需求。如下面我們所看到的,我們工廠產(chǎn)品的全生命周期管理(PLM),制造操作管理,全面的集成自動化得以實現(xiàn)。
我們還構(gòu)建了一云端為基礎(chǔ)開放物聯(lián)網(wǎng)生態(tài)系統(tǒng),MindSphere—西門子工業(yè)云平臺。MindSphere被設(shè)計為一個開放的生態(tài)系統(tǒng),可以很容易的連接其設(shè)備。工業(yè)企業(yè)可將其作為數(shù)字化服務(wù),如數(shù)據(jù)管理以及工廠資源優(yōu)化配置的基礎(chǔ),還可以監(jiān)測其設(shè)備。
瑪莎拉蒂的生產(chǎn)中,通過西門子全價值鏈整合,縮短市場投放時間,增強靈活性,增強產(chǎn)能。
通過西門子集成技術(shù),福特汽車縮短研發(fā)周期,減少能源成本,增強產(chǎn)能。
在MindSphere中,格林(Gehring)使用復(fù)雜的云服務(wù)與數(shù)據(jù)分析,珩床可用性。
西門子的整體方案和中國的“十三五規(guī)劃"也是十分契合的,數(shù)字化企業(yè)是我們?yōu)樗幸?guī)模企業(yè)提供的未來工業(yè)的解決方案。
6ES7512-1SK01-0AB0
有關(guān)運行次數(shù)和運行變量的信息:
程序運行時無法更改運行次數(shù)。出于性能原因,應(yīng)在塊接口的'Temp'部分中聲明運行變量。在循環(huán)中,該運行變量無法更改。
按如下方式聲明此指令:
FOR <運行變量> := <起始值> TO <結(jié)束值> BY <增量> DO
<語句>;
END_FOR;
如果增量為1,可以簡寫為:
FOR <運行變量> := <起始值> TO <結(jié)束值> DO
<語句>;
END_FOR;
圖10 FOR語句
下表列出了該指令的參數(shù):
參數(shù) | 數(shù)據(jù)類型 | 存儲區(qū) | 說明 |
---|---|---|---|
<運行變量> | 有符號整數(shù)、無符號整數(shù)* | I、Q、M、D、L | 執(zhí)行循環(huán)時會計算其值的操作數(shù)。執(zhí)行變量的數(shù)據(jù)類型將確定其它參數(shù)的數(shù)據(jù)類型。 |
<起始值> | I、Q、M、D、L | 表達式,在運行變量執(zhí)行循環(huán)時,將為運行變量分配該表達式的值。 | |
<結(jié)束值> | I、Q、M、D、L | 表達式,在運行程序最后一次循環(huán)時會為運行變量分配該表達式的值。在每個循環(huán)后都會檢查運行變量的值:
執(zhí)行該指令期間,不允許更改結(jié)束值。 | |
<增量> | I、Q、M、D、L | 表達式,根據(jù)增量表達式的值,執(zhí)行變量在每次循環(huán)后都會遞增(正增量)或遞減(負(fù)增量)自身變量值。 如果未增量,則在每次循環(huán)后執(zhí)行變量的值加 1。 執(zhí)行該指令期間,不允許更改增量。 | |
<語句> | - | 只要運行變量的值在取值范圍內(nèi),每次循環(huán)都就會執(zhí)行的語句。取值范圍由起始值和結(jié)束值定義。 |
*TIA PORTAL V16開始支持無符號整數(shù)類型的變量
示例
圖11 FOR示例
Tag_Value 操作數(shù)乘以b_array 數(shù)組變量的元素 (2, 4, 6, 8)。并將計算結(jié)果讀入到a_array 數(shù)組變量的元素 (2, 4, 6, 8) 中。
下表展示了給定 Tag_Value 與 b_array[i] 的值得到 a_array[i] 的結(jié)果:
設(shè)定 | Tag_Value | |||
值 | 5 | |||
設(shè)定 | b_array[2] | b_array[4] | b_array[6] | b_array[8] |
值 | 3 | 5 | 7 | 9 |
結(jié)果 | a_array[2] | a_array[4] | a_array[6] | a_array[8] |
值 | 15 | 25 | 35 | 45 |
說明:使用'滿足條件時執(zhí)行'指令可以重復(fù)執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(True 或 False)的表達式。可以將邏輯表達式或比較表達式作為條件。
執(zhí)行該指令時,將對的表達式進行運算。如果表達式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。
也可以嵌套程序循環(huán)。在程序循環(huán)內(nèi),可以編寫包含其它運行變量的其它程序循環(huán)。
通過指令'復(fù)查循環(huán)條件'(Continue),可以終止當(dāng)前連續(xù)運行的程序循環(huán)。通過指令'立即退出循環(huán)'(Exit)終止整個循環(huán)的執(zhí)行。
可按如下方式聲明此指令:
WHILE <條件>
DO <語句>;
END_WHILE;
圖12 WHILE語句
參數(shù)
下表列出了該指令的參數(shù):
參數(shù) | 數(shù)據(jù)類型 | 存儲區(qū) | 說明 |
---|---|---|---|
<條件> | BOOL | I、Q、M、D、L | 表達式,每次執(zhí)行循環(huán)之前都需要進行求值。 |
<語句> | - | 在滿足條件時,要執(zhí)行的語句。如果不滿足條件,則程序?qū)?END_WHILE 后繼續(xù)執(zhí)行。 |
示例
圖13 WHILE示例
下表展示了循環(huán)初始和循環(huán)結(jié)束時變量值的變化
初始 | 循環(huán)結(jié)束 | |
Tag_2 | 5 | |
Tag_1 | 0 | 5 |
說明:使用'不滿足條件時執(zhí)行'指令可以重復(fù)執(zhí)行程序循環(huán),直至不滿足執(zhí)行條件為止。該條件是結(jié)果為布爾值(True 或 False)的表達式。可以將邏輯表達式或比較表達式作為條件。
執(zhí)行該指令時,將對的表達式進行運算。如果表達式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。
即使?jié)M足終止條件,至少也會執(zhí)行一次循環(huán)內(nèi)的語句。
也可以嵌套程序循環(huán)。在程序循環(huán)內(nèi),可以編寫包含其它運行變量的其它程序循環(huán)。
通過指令'復(fù)查循環(huán)條件'(Continue),可以終止當(dāng)前連續(xù)運行的程序循環(huán)。通過指令'立即退出循環(huán)'(Exit)終止整個循環(huán)的執(zhí)行。
可按如下方式聲明此指令:
REPEAT <語句>;
UNTIL <條件>
END_REPEAT;
圖14 REPEAT語句
參數(shù)
下表列出了該指令的參數(shù):
參數(shù) | 數(shù)據(jù)類型 | 存儲區(qū) | 說明 |
---|---|---|---|
<語句> | - | 在設(shè)定條件的值為 False 時執(zhí)行的指令。即使?jié)M足終止條件,此指令也執(zhí)行一次。 | |
<條件> | BOOL | I、Q、M、D、L | 表達式,每次執(zhí)行循環(huán)之后都需要進行求值。如果表達式的值為 False,則將再次執(zhí)行程序循環(huán)。如果表達式的值為 True,則程序循環(huán)將從 END_REPEAT 后繼續(xù)執(zhí)行。 |
示例
圖15 REPEAT示例
下表展示了循環(huán)初始和循環(huán)結(jié)束時變量值的變化
初始 | 循環(huán)結(jié)束 | |
Tag_2 | 5 | |
Tag_1 | 0 | 6 |
說明:使用'復(fù)查循環(huán)條件'指令,可以結(jié)束 FOR、WHILE 或 REPEAT 循環(huán)的當(dāng)前程序運行。
執(zhí)行該指令后,將再次計算繼續(xù)執(zhí)行程序循環(huán)的條件。該指令將影響其所在的程序循環(huán)。
圖16 CONTINUE用在FOR循環(huán)
圖17 CONTINUE用在WHILE循環(huán)
圖18 CONTINUE用在REPEAT循環(huán)
示例
圖19 CONTINUE示例
下表展示了計算結(jié)果:
變量 | 計算結(jié)果 |
'DB10'.Test[0] | - |
'DB10'.Test[1] | - |
'DB10'.Test[2] | - |
'DB10'.Test[3] | - |
'DB10'.Test[4] | - |
'DB10'.Test[5] | 1 |
'DB10'.Test[6] | 1 |
'DB10'.Test[7] | 1 |
如果滿足條件 i < 5,則不執(zhí)行后續(xù)值分配 ('DB10'.Test[i] := 1)。運行變量 (i) 以增量'1'遞增,然后檢查其當(dāng)前值是否在設(shè)定的循環(huán)取值范圍內(nèi)。如果執(zhí)行變量在循環(huán)取值范圍內(nèi),則將再次計算 IF 的條件。
如果不滿足條件 i < 5,則將執(zhí)行后續(xù)值分配 ('DB10'.Test[i] := 1) 并開始一個新循環(huán)。在這種情況下,執(zhí)行變量也會以增量'1'進行遞增并接受檢查。
說明:使用'立即退出循環(huán)'指令,可以隨時取消 FOR、WHILE 或 REPEAT 循環(huán)的執(zhí)行,而無需考慮是否滿足條件,并在循環(huán)結(jié)束(END_FOR、END_WHILE 或 END_REPEAT)后繼續(xù)執(zhí)行程序。
該指令將影響其所在的程序循環(huán)。
圖20 EXIT語句
示例
圖21 EXIT示例
下表展示了計算結(jié)果:
變量 | 計算結(jié)果 |
'DB10'.Test[0] | 1 |
'DB10'.Test[1] | 1 |
'DB10'.Test[2] | 1 |
'DB10'.Test[3] | 1 |
'DB10'.Test[4] | 1 |
'DB10'.Test[5] | 1 |
'DB10'.Test[6] | - |
'DB10'.Test[7] | - |
如果滿足條件 i > 5,則將取消循環(huán)執(zhí)行。程序?qū)?END_FOR 后繼續(xù)執(zhí)行。
如果不滿足條件 i <= 5,則將執(zhí)行后續(xù)值分配 ('DB10'.Test[i] :=1) 并開始一個新循環(huán)。將運行變量 (i) 以 1 進行遞增,并進行檢查該變量的當(dāng)前值是否在程序中設(shè)定的循環(huán)取值范圍之內(nèi)。如果執(zhí)行變量 (i) 在循環(huán)取值范圍內(nèi),則將再次計算 IF 的條件。
說明:使用'跳轉(zhuǎn)'指令,可以從標(biāo)注為跳轉(zhuǎn)標(biāo)簽的點開始繼續(xù)執(zhí)行程序。
跳轉(zhuǎn)標(biāo)簽和'跳轉(zhuǎn)'指令必須在同一個塊中。在一個塊中,跳轉(zhuǎn)標(biāo)簽的名稱只能一次。每個跳轉(zhuǎn)標(biāo)簽可以是多個跳轉(zhuǎn)指令的目標(biāo)。不允許從'外部'跳轉(zhuǎn)到程序循環(huán)內(nèi),但允許從循環(huán)內(nèi)跳轉(zhuǎn)到'外部'。
注意:
LAD/FBD語言內(nèi)的SCL段,不能使用GOTO指令。
跳轉(zhuǎn)標(biāo)簽遵循以下語法規(guī)則:
字母(a 至 z,A 至 Z)
字母和數(shù)字組合;請必須字母為開始
可按如下方式聲明此指令:
GOTO <跳轉(zhuǎn)標(biāo)簽>;
...
<跳轉(zhuǎn)標(biāo)簽>: <語句>
示例
圖22 GOTO示例
下表展示了每個操作數(shù)數(shù)值對目標(biāo)變量的變化影響:
操作數(shù) | 值 | |||||||
Tag_Value | 1 | 2 | 3 | 其他 | ||||
初始值 | 結(jié)束值 | 初始值 | 結(jié)束值 | 初始值 | 結(jié)束值 | 初始值 | 結(jié)束值 | |
Tag_1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Tag_2 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Tag_3 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
Tag_4 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
根據(jù)'Tag_Value'操作數(shù)的值,程序?qū)膶?yīng)的跳轉(zhuǎn)標(biāo)簽標(biāo)識點開始繼續(xù)執(zhí)行。例如,如果'Tag_Value'操作數(shù)的值為 2,則程序?qū)奶D(zhuǎn)標(biāo)簽'MyLABEL2'開始繼續(xù)執(zhí)行。在這種情況下,將跳過'MyLABEL1'跳轉(zhuǎn)標(biāo)簽所標(biāo)識的程序行。
說明:使用'退出塊'指令,可以終止當(dāng)前處理塊中的程序執(zhí)行,并在調(diào)用塊中繼續(xù)執(zhí)行。