業(yè)務(wù)銷(xiāo)售;竭誠(chéng)為你服務(wù).
公司主營(yíng)西門(mén)子PLC模塊,數(shù)控伺服,觸摸屏等系列產(chǎn)品,產(chǎn)品*,質(zhì)保一年
![]() |
參考價(jià) | ¥670 |
訂貨量 | 1 |
更新時(shí)間:2019-06-02 18:13:49瀏覽次數(shù):244
聯(lián)系我們時(shí)請(qǐng)說(shuō)明是化工儀器網(wǎng)上看到的信息,謝謝!
西門(mén)子6FC5250-0AG03-0AA0維修
可以使用“序列化"指令將多個(gè) PLC 數(shù)據(jù)類(lèi)型 (UDT)、STRUCT 或 ARRAY of <數(shù)據(jù)類(lèi)型
> 轉(zhuǎn)換為順序表示,而不會(huì)丟失結(jié)構(gòu)部分。
可以使用該指令臨時(shí)將用戶(hù)程序的多個(gè)結(jié)構(gòu)化數(shù)據(jù)項(xiàng)保存到緩沖區(qū)中(位于全局?jǐn)?shù)據(jù)
塊中),并發(fā)送到其它 CPU。用于保存轉(zhuǎn)換后數(shù)據(jù)的存儲(chǔ)區(qū)的數(shù)據(jù)類(lèi)型必需為 ARRAY of
BYTE 或 ARRAY of CHAR,并在版本 V1.0 中聲明為訪(fǎng)問(wèn)。在版本 V2.0 及以上版本
中,還支持?jǐn)?shù)據(jù)。源數(shù)據(jù)區(qū)內(nèi)的填充數(shù)據(jù)在目標(biāo)數(shù)組中未定義。這些數(shù)據(jù)可以為填充
字節(jié)或某數(shù)據(jù)區(qū)的填充位(如,ARRAY、STRUCT 或 PLC 數(shù)據(jù)類(lèi)型 (UDT))以及當(dāng)前某
個(gè)未使用字符串中的字符。
存儲(chǔ)區(qū)的容量為 64 KB。如果參數(shù) DEST_ARRAY 位于存儲(chǔ)區(qū)中,則根據(jù)存
儲(chǔ)區(qū)規(guī)則,大于 64 KB 的結(jié)構(gòu)不能進(jìn)行序列化。
建議將 ARRAY 的下限定義為“0",這是因?yàn)?ARRAY 中的下標(biāo)對(duì)應(yīng) POS 參數(shù)值。例如,
ARRAY[0] = POS 0。下文中的說(shuō)明與示例均基于此公式。
參數(shù) POS 處操作數(shù)中包含有關(guān)轉(zhuǎn)換后數(shù)據(jù)占用的字節(jié)數(shù)量信息。
如果要發(fā)送單個(gè) PLC 數(shù)據(jù)類(lèi)型 (UDT)、STRUCT 或 ARRAY of <數(shù)據(jù)類(lèi)型pe>,可以直接
調(diào)用指令“TSEND:通過(guò)通信連接發(fā)送數(shù)據(jù)"。
指令
4.1 指令
對(duì) PLC 進(jìn)行編程
1568 編程和操作手冊(cè), 10/2018
存儲(chǔ)區(qū)的容量
對(duì)齊規(guī)則為存儲(chǔ)區(qū)內(nèi)的簡(jiǎn)單結(jié)構(gòu)中不包含填充字節(jié)。這樣,存儲(chǔ)區(qū)中的結(jié)構(gòu)大小
將小于存儲(chǔ)區(qū)中的。結(jié)構(gòu)型 ARRY 和其它結(jié)構(gòu)的結(jié)構(gòu)中,包含填充字節(jié)。對(duì)于包含組
合結(jié)構(gòu)(所需存儲(chǔ)空間更高)的存儲(chǔ)區(qū)而言,該規(guī)則并并為通用規(guī)則。
S7-1500 系列 CPU:
如果某個(gè)塊的塊屬性為“塊訪(fǎng)問(wèn)",則 BOOL 數(shù)據(jù)類(lèi)型的長(zhǎng)度將取決于緊跟其后的數(shù)
據(jù)類(lèi)型。即,如果 BOOL 數(shù)據(jù)類(lèi)型之后為 BYTE,則長(zhǎng)度為 1 個(gè)字節(jié)。即,如果 BOOL
數(shù)據(jù)類(lèi)型之后為 WORD,則長(zhǎng)度為 2 個(gè)字節(jié)。這樣,存儲(chǔ)區(qū)中主要由 BOOL 數(shù)據(jù)類(lèi)
型組成的結(jié)構(gòu)大小將大于存儲(chǔ)區(qū)。因此,含少量 BOOL 數(shù)據(jù)類(lèi)型的組合型結(jié)構(gòu)在
存儲(chǔ)區(qū)內(nèi)的大小,要小于該結(jié)構(gòu)在存儲(chǔ)區(qū)內(nèi)的大小。
因此,建議序列化的源數(shù)據(jù)區(qū)從大數(shù)據(jù)類(lèi)型開(kāi)始,以布爾型元素結(jié)束。這樣,可大幅
用于填充的填充位。
存儲(chǔ)區(qū)
對(duì)固件版本 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本 V2.0 及以上版本的 S7-1500
系列 CPU,要對(duì)較大結(jié)構(gòu)進(jìn)行序列化,可將存儲(chǔ)區(qū)聲明為訪(fǎng)問(wèn)。對(duì)于存儲(chǔ)區(qū),順
序表示保存不變。
參數(shù)
下表列出了“序列化"指令的參數(shù):
參數(shù)聲明數(shù)據(jù)類(lèi)型存儲(chǔ)區(qū)說(shuō)明
SRC_VARI
ABLE
Input VARIANT D、FB 的塊接口指向一個(gè)待序列化的
STRUCT、ARRAY 或
PLC 數(shù)據(jù)類(lèi)型 (UDT) 變量
的指針。
DEST_AR
RAY
InOut VARIANT D、FB 的塊接口
(可在 Input、
Output、Static
和 Temp 部分
中。)
指向保存所生成數(shù)據(jù)串的
ARRAY of BYTE 或
ARRAY of CHAR 的指針。
指令
4.1 指令
對(duì) PLC 進(jìn)行編程
編程和操作手冊(cè), 10/2018 1569
參數(shù)聲明數(shù)據(jù)類(lèi)型存儲(chǔ)區(qū)說(shuō)明
POS InOut DINT I、Q、M、D、L POS 參數(shù)處的操作數(shù),將
根據(jù)已轉(zhuǎn)換所占
用的總字節(jié)數(shù),存儲(chǔ)
個(gè)字節(jié)的下標(biāo)。POS 參數(shù)
將從 0 開(kāi)始計(jì)算。
RET_VAL Output INT I、Q、M、D、L 錯(cuò)誤信息
RET_VAL 參數(shù)
下表列出了 RET_VAL 參數(shù)值的含義:
錯(cuò)誤代碼*
(W#16#...
)
說(shuō)明
0000 無(wú)錯(cuò)誤
80B0 參數(shù) SRC_VARIABLE 和 DEST_ARRAY 的存儲(chǔ)區(qū)重疊。
8150 SRC_VARIABLE 參數(shù)中的 VARIANT 數(shù)據(jù)類(lèi)型包含一個(gè) ZERO 指針。
8151 SRC_VARIABLE 參數(shù)中的引用無(wú)效
8236 SRC_ARRAY 參數(shù)處的變量不在一個(gè)訪(fǎng)問(wèn)塊中。
8250 NULL 指針已在 DEST_ARRAY 參數(shù)處傳遞。
8251 DEST_ARRAY 參數(shù)中的引用無(wú)效
8253 參數(shù) DEST_ARRAY 處該變量可提供的空間不足,無(wú)法包含參數(shù)
SRC_VARIABLE 處變量中的內(nèi)容。由于 POS 參數(shù)處變量的輸入值,可用的
存儲(chǔ)空間將。POS 參數(shù)處的輸入值可確定 DEST_ARRAY 參數(shù)處變量中
的起始位置。
8254 DEST_ARRAY 參數(shù)中的數(shù)據(jù)類(lèi)型無(wú)效
8382 POS 參數(shù)的值超出數(shù)組的。
* 在程序編輯器中,錯(cuò)誤代碼可顯示為整數(shù)或十六進(jìn)制值。有關(guān)切換顯式格式的更多信
息,請(qǐng)參見(jiàn)“另請(qǐng)參見(jiàn)"。
指令
4.1 指令
對(duì) PLC 進(jìn)行編程
1570 編程和操作手冊(cè), 10/2018
對(duì)于固件版本 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本 V2.0 及以上版本的
S7-1500 系列 CPU,以下錯(cuò)誤代碼的含義不同:
錯(cuò)誤代碼*
(W#16#...
)
說(shuō)明
8236 對(duì) DEST_ARRAY 參數(shù)處的存儲(chǔ)區(qū)訪(fǎng)問(wèn)無(wú)效。
* 在程序編輯器中,錯(cuò)誤代碼可顯示為整數(shù)或十六進(jìn)制值。有關(guān)切換顯式格式的更多信
息,請(qǐng)參見(jiàn)“另請(qǐng)參見(jiàn)"。
示例
以下示例說(shuō)明了該指令的工作原理:
STL 說(shuō)明
L 0 // 將值“0"裝載到累加器 1 中。
T #BufferPos // 值“0"被傳送到 #BufferPos 操作數(shù)。
CALL Serialize // 調(diào)用指令。
SRC_VARIABLE := "Source".Client //“Source"變量中的被序列化。
RET_VAL := #Error // 錯(cuò)誤信息
DEST_ARRAY := "Buffer".Field // 順序表示被寫(xiě)入“Buffer"變量。
POS := #BufferPos //“Buffer".Field 的下一個(gè)未寫(xiě)入字節(jié)的索引存儲(chǔ)在
#BufferPos 操作數(shù)中。
CALL S_MOVE // 調(diào)用指令。
// 從“???"下拉列表中選擇所需數(shù)據(jù)類(lèi)型。
IN := 'arti' // 'arti' 字符被到 #Label 操作數(shù)中。
OUT := #Label
CALL Serialize // 調(diào)用指令。
SRC_VARIABLE := #Label / / 字符被序列化。
RET_VAL := #Error // 錯(cuò)誤信息
DEST_ARRAY := "Buffer".Field // 順序表示被寫(xiě)入后的“Buffer".Field 變量。
POS := #BufferPos // #BufferPos 操作數(shù)的值相應(yīng)遞增。
CALL Serialize // 調(diào)用指令。
SRC_VARIABLE :=
"Source".Article[#DeliverPos]
//“Source"變量中特定部件的數(shù)據(jù)被序列化。
RET_VAL := #Error // 錯(cuò)誤信息
DEST_ARRAY := "Buffer".Field // 順序表示被寫(xiě)入'arti' 字符后的“Buffer"變量。
POS := #BufferPos // 字節(jié)數(shù)
指令
4.1 指令
對(duì) PLC 進(jìn)行編程
編程和操作手冊(cè), 10/2018 1571
下表列出了操作數(shù)的聲明:
操作數(shù)數(shù)據(jù)類(lèi)型聲明
DeliverPos INT 在塊接口的“Input"部分
BufferPos DINT 在塊接口的“Temp"部分
Error INT 在塊接口的“Temp"部分
Label STRING[4] 在塊接口的“Temp"部分
下表列出了 PLC 數(shù)據(jù)類(lèi)型的聲明:
PLC 數(shù)據(jù)類(lèi)型的名稱(chēng)名稱(chēng)數(shù)據(jù)類(lèi)型
Article Number DINT
Declaration STRING
Colli INT
Client Title INT
First name STRING[10]
Surname STRING[10]
下表列出了數(shù)據(jù)塊的聲明:
數(shù)據(jù)塊的名稱(chēng)名稱(chēng)數(shù)據(jù)類(lèi)型
Source
Client "Client"(PLC 數(shù)據(jù)類(lèi)型)
Article Array[0..10] of
"Article"(PLC 數(shù)據(jù)類(lèi)型)
Buffer Field Array[0..294] of BYTE
參見(jiàn)
有效數(shù)據(jù)類(lèi)型概述 (頁(yè) 247)
狀態(tài)字的基本信息 (頁(yè) 200)
轉(zhuǎn)換程序狀態(tài)的顯示格式 (頁(yè) 8834)
有關(guān) VARIANT 的基本信息 (頁(yè) 348)
PLC 數(shù)據(jù)類(lèi)型 (UDT) 的基本知識(shí) (
下一篇:西門(mén)子6FC5250-0AG01-0AA0定制