S7-1200如何通過(guò)編程判斷程序是否發(fā)生過(guò)改動(dòng)
配方相關(guān)指令介紹
配方功能主要使用4個(gè)指令,READ_DBL和WRIT_DBL用于對(duì)配方數(shù)據(jù)塊的讀寫,RecipeExport和RecipeImport用于配方數(shù)據(jù)塊和CSV文件之間的轉(zhuǎn)化,下面分別介紹這4個(gè)指令的使用。
READ_DBL
指令的目的是將數(shù)據(jù)塊變量中的裝載存儲(chǔ)器部分的值,傳送到數(shù)據(jù)塊變量中的工作存儲(chǔ)器部分中。如圖1所示。
通常用于配方中,將僅存儲(chǔ)在裝載存儲(chǔ)器的配方數(shù)據(jù)讀取到活動(dòng)配方。
圖1 READ_DBL與WRIT_DBL原理
表1 參數(shù)列表
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 說(shuō)明 |
---|---|---|---|
REQ | Input | Bool | REQ = 1:讀取請(qǐng)求,通常建議沿觸發(fā) |
SRCBLK | Input | Variant | 待讀取的數(shù)據(jù)塊變量 |
RET_VAL | Return | Int | 狀態(tài)、錯(cuò)誤信息 |
BUSY | Output | Bool | BUSY = 1:讀取中 |
DSTBLK | Output | Variant | 待寫入的數(shù)據(jù)塊變量,和SRCBLK數(shù)據(jù)類型一致,優(yōu)化屬性一致 |
以配方功能快速入門的例子程序?yàn)槔?/p>
圖2 READ_DBL應(yīng)用
如圖2所示,SRCBLK的實(shí)參為“DB1_蛋糕配方”.Static_1["DB3_操作".Index],其中DB1_蛋糕配方”.Static_1是UDT類型(蛋糕配方)的數(shù)組,而帶上后面的["DB3_操作".Index],就變成了數(shù)組中的一個(gè)元素,也就是說(shuō)“DB1_蛋糕配方”.Static_1["DB3_操作".Index]是一個(gè)UDT類型(蛋糕配方)。
而DSTBLK的實(shí)參是“DB2_活動(dòng)配方”,“DB2_活動(dòng)配方”是基于UDT類型(蛋糕配方)建立的DB,也就是說(shuō)“DB2_活動(dòng)配方”可以看做UDT類型。
SRCBLK和DSTBLK的實(shí)參都是UDT類型,可以使用READ_DBL指令,是將“DB1_蛋糕配方”.Static_1["DB3_操作".Index]也就是配方中的一組讀取到活動(dòng)配方中。
WRIT_DBL
指令的目的是將數(shù)據(jù)塊變量中的工作存儲(chǔ)器部分寫入到數(shù)據(jù)塊變量中的裝載存儲(chǔ)器部分。如圖1所示。
通常用于配方中,將活動(dòng)配方寫入到僅存儲(chǔ)在裝載存儲(chǔ)器的配方數(shù)據(jù)。
表2 參數(shù)列表
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 說(shuō)明 |
---|---|---|---|
REQ | Input | Bool | REQ = 1:寫入請(qǐng)求,通常建議沿觸發(fā) |
SRCBLK | Input | Variant | 待讀取的數(shù)據(jù)塊變量 |
RET_VAL | Return | Int | 狀態(tài)、錯(cuò)誤信息 |
BUSY | Output | Bool | BUSY = 1:讀取中 |
DSTBLK | Output | Variant | 待寫入的數(shù)據(jù)塊變量,和SRCBLK數(shù)據(jù)類型一致,優(yōu)化屬性一致 |
以配方功能快速入門的例子程序?yàn)槔?/p>
圖3 WRIT_DBL應(yīng)用
如圖3所示,SRCBLK的實(shí)參是“DB2_活動(dòng)配方”,“DB2_活動(dòng)配方”是基于UDT類型(蛋糕配方)建立的DB,也就是說(shuō)“DB2_活動(dòng)配方”可以看做UDT類型。
而DSTBLK的實(shí)參為“DB1_蛋糕配方”.Static_1["DB3_操作".Index],其中“DB1_蛋糕配方”.Static_1是UDT類型(蛋糕配方)的數(shù)組,而帶上后面的["DB3_操作".Index],就變成了數(shù)組中的一個(gè)元素,也就是說(shuō)“DB1_蛋糕配方”.Static_1["DB3_操作".Index]是一個(gè)UDT類型(蛋糕配方)。
SRCBLK和DSTBLK的實(shí)參都是UDT類型,可以使用WRIT_DBL指令,是將活動(dòng)配方寫入到“DB1_蛋糕配方”.Static_1["DB3_操作".Index]也就是配方中的一組中。
RecipeExport
指令的目的是將僅存儲(chǔ)在工作存儲(chǔ)器中的配方數(shù)據(jù)(UDT數(shù)組)導(dǎo)出成為.csv文件,方便在電腦上的EXCEL或者ASCII編輯器編輯。
表3 參數(shù)列表
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 說(shuō)明 |
---|---|---|---|
REQ | Input | Bool | 沿觸發(fā):激活請(qǐng)求 |
RECIPE_DB | InOut | Variant | 待導(dǎo)出的配方數(shù)據(jù)塊變量,通常是配方UDT的數(shù)組 |
DONE | Output | Bool | DONE= 1:導(dǎo)出完成,只維持一個(gè)掃描周期 |
BUSY | Output | Bool | BUSY = 1:導(dǎo)出中 |
ERROR | Output | Bool | ERROR= 1:導(dǎo)出錯(cuò)誤,只維持一個(gè)掃描周期,錯(cuò)誤代碼參見STATUS |
STATUS | Output | Word | 狀態(tài)或錯(cuò)誤代碼,錯(cuò)誤代碼只維持一個(gè)掃描周期 |
以配方功能快速入門的例子程序?yàn)槔?/p>
圖4 RecipeExport應(yīng)用
“DB1_蛋糕配方”.Static_1是UDT類型(蛋糕配方)的數(shù)組,導(dǎo)出后生成DB1_蛋糕配方.csv文件。
RecipeImport
指令的目的是將在電腦上的EXCEL或者ASCII編輯器編輯過(guò)后的.csv文件導(dǎo)入成為僅存儲(chǔ)在工作存儲(chǔ)器中的配方數(shù)據(jù)(UDT數(shù)組)。
表4 參數(shù)列表
參數(shù) | 聲明 | 數(shù)據(jù)類型 | 說(shuō)明 |
---|---|---|---|
REQ | Input | Bool | 沿觸發(fā):激活請(qǐng)求 |
RECIPE_DB | InOut | Variant | 導(dǎo)入后的配方數(shù)據(jù)塊變量,通常是配方UDT的數(shù)組 |
DONE | Output | Bool | DONE= 1:導(dǎo)入完成,只維持一個(gè)掃描周期 |
BUSY | Output | Bool | BUSY = 1:導(dǎo)入中 |
ERROR | Output | Bool | ERROR= 1:導(dǎo)入錯(cuò)誤,只維持一個(gè)掃描周期,錯(cuò)誤代碼參見STATUS |
STATUS | Output | Word | 狀態(tài)或錯(cuò)誤代碼,錯(cuò)誤代碼只維持一個(gè)掃描周期 |
以配方功能快速入門的例子程序?yàn)槔?/p>
圖5 RecipeImport應(yīng)用
需要將DB1_蛋糕配方.csv文件導(dǎo)入后,將“DB1_蛋糕配方”.Static_1這個(gè)UDT類型(蛋糕配方)的數(shù)組的值覆蓋。
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167396 -
ASCII
+關(guān)注
關(guān)注
5文章
172瀏覽量
35869 -
S7-1200
+關(guān)注
關(guān)注
11文章
333瀏覽量
18626
原文標(biāo)題:S7-1200 如何通過(guò)編程判斷程序是否發(fā)生過(guò)改動(dòng)
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于S7-1200的設(shè)備與網(wǎng)絡(luò)組態(tài)

基于S7-1200的PLC的編程及擴(kuò)展
S7-1200運(yùn)動(dòng)控制的結(jié)構(gòu)及原理

S7-1200和S7-1200進(jìn)行S7通信的詳細(xì)資料說(shuō)明

S7-1200如何通過(guò)編程判斷程序是否發(fā)生過(guò)改動(dòng)
西門子S7-1200 PLC通過(guò)存儲(chǔ)卡進(jìn)行程序更新
S7-1200與S7-300的選型區(qū)別

S7-1200下載項(xiàng)目程序步驟詳解

評(píng)論