国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

S7-1200:Deserialize(反序列化)、Serialize(序列化)

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:機(jī)器人及PLC自動(dòng)化 ? 2022-04-19 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Deserialize(反序列化)、Serialize(序列化)

S7-1200將Byte數(shù)組(即Byte流)看做是序列,也就是標(biāo)準(zhǔn)數(shù)組。與之相反,其他所有格式都是非序列的,通常程序使用的都是非序列的,例如Struct,UDT,或其他格式。序列化和反序列化指令的作用就是在實(shí)現(xiàn)標(biāo)準(zhǔn)數(shù)組和其他格式的轉(zhuǎn)換。對(duì)于某些標(biāo)準(zhǔn)功能塊,最方便處理的是Byte數(shù)組,但處理對(duì)象往往是多樣的例如Struct、UDT或者其他格式,這時(shí)最好的方法就是先將各類對(duì)象統(tǒng)一序列化成Byte數(shù)組,然后執(zhí)行相關(guān)功能塊,最后在執(zhí)行反序列化返回初始對(duì)象。如圖1所示,為這兩個(gè)指令實(shí)現(xiàn)的結(jié)果。

TIA V13SP1,S7-1200 V4.0開始支持這兩個(gè)指令。

2effcaca-bf89-11ec-9e50-dac502259ad0.jpg

圖1 指令實(shí)現(xiàn)的功能

2f1ccd46-bf89-11ec-9e50-dac502259ad0.jpg

圖2 指令位置

2f2fb104-bf89-11ec-9e50-dac502259ad0.jpg

圖3 指令詳情

對(duì)于Deserialize(反序列化)、Serialize(序列化),目前出了2個(gè)版本的指令:

1. TIA 博途 V13SP1開始,S7-1200 V4.0、V4.1支持V1版本,以下為V1版本說明:

Deserialize:參數(shù)參見表1

表1 Deserialize參數(shù)

參數(shù) 聲明 數(shù)據(jù)類型 說明
SRC_ARRAY Input Variant或Array of Byte 標(biāo)準(zhǔn)Byte數(shù)組
POS InOut DInt 見下面注意4
Ret_Val Return Int 錯(cuò)誤代碼
DEST_VARIABLE Output Variant或Struct、UDT、Array等 反序列化后的輸出變量

Serialize:參數(shù)參見表2

表2 Serialize參數(shù)

參數(shù) 聲明 數(shù)據(jù)類型 說明
SRC_VARIABLE Input Variant或Struct、UDT、Array等 待序列化的輸入變量
POS InOut DInt 見下面注意4
Ret_Val Return Int 錯(cuò)誤代碼
DEST_ARRAY Output Variant或Array of Byte 標(biāo)準(zhǔn)Byte數(shù)組

注意:

(1) V1版本中標(biāo)準(zhǔn)Byte數(shù)組不能是優(yōu)化數(shù)據(jù)塊的數(shù)組,可以是諸如P#M100.0 Byte 10這種看做是數(shù)組的(原因)。所以Deserialize的SRC_ARRAY與Serialize的DEST_ARRAY支持的Variant類型其實(shí)指向的就是P#指針這種,指向其他類型都不可以。

(2)同樣是Variant類型,Deserialize的DEST_VARIABLE與Serialize的SRC_VARIABLE是真正的支持Variant類型,并且是可以處理Variant類型的變量的指令之二。

(3) SRC_ARRAY/DEST_ARRAY的數(shù)組大小要大于DEST_VARIABLE/SRC_VARIABLE的空間占用

(4)DEST_VARIABLE/SRC_VARIABLE空間占用的計(jì)算規(guī)則:

  • 位變量位于另一位變量后則地址連續(xù)排布,如果位于其他變量類型的后面,則需要從整字節(jié)地址開始;

  • 字節(jié)大小的變量從整字節(jié)地址開始;

  • 字、雙字、四字的變量從偶數(shù)字節(jié)地址開始;

例子:如圖4所示,雖然總數(shù)上是5個(gè)字節(jié),但是因?yàn)檎巫兞繌呐紨?shù)字節(jié)地址開始所以空出了一個(gè)字節(jié),因此這種排布需要占6個(gè)字節(jié)。

2f538520-bf89-11ec-9e50-dac502259ad0.jpg

圖4 6個(gè)字節(jié)的排布

(4)POS變量

POS變量聲明是InOut,用在Byte數(shù)組的下標(biāo)變量,有輸入有輸出。

Deserialize:POS的初始輸入作為待轉(zhuǎn)化的Byte數(shù)組的起始元素,指令結(jié)束后,POS的輸出=初始輸入+DEST_VARIABLE占據(jù)的字節(jié)數(shù)

也可以看做指針,初始指針指向Byte數(shù)組所在的POS位置,轉(zhuǎn)化后,指針移動(dòng)了DEST_VARIABLE占據(jù)的字節(jié)數(shù)。

注意:POS>=0,當(dāng)POS=0時(shí),為Byte數(shù)組的第一個(gè)元素,所以建議Byte數(shù)組使用Array[0..x] of Byte,這樣Byte數(shù)組下標(biāo)可以和POS對(duì)應(yīng)上。

例子:POS實(shí)例,如圖5所示。

2f6d8c36-bf89-11ec-9e50-dac502259ad0.jpg

圖5 POS示例

①:初始POS=0,指針指向數(shù)組第0個(gè)元素

②:執(zhí)行Deserialize,轉(zhuǎn)化了12個(gè)字節(jié),POS的輸出=0+12=12,指針指向數(shù)組第12個(gè)元素

Serialize:POS的初始輸入作為轉(zhuǎn)化后的Byte數(shù)組的起始元素,指令結(jié)束后,POS的輸出=初始輸入+SRC_VARIABLE占據(jù)的字節(jié)數(shù)

也可以看做指針,初始指針指向Byte數(shù)組所在的POS位置,轉(zhuǎn)化后,指針移動(dòng)了SRC_VARIABLE占據(jù)的字節(jié)數(shù)。

注意:POS>=0,當(dāng)POS=0時(shí),為Byte數(shù)組的第一個(gè)元素,所以建議Byte數(shù)組使用Array[0..x] of Byte,這樣Byte數(shù)組下標(biāo)可以和POS對(duì)應(yīng)上。

例子參考圖5:

①:初始POS=0,指針指向數(shù)組第0個(gè)元素

②:執(zhí)行Serialize,轉(zhuǎn)化了12個(gè)字節(jié),POS的輸出=0+12=12,指針指向數(shù)組第12個(gè)元素

2. TIA 博途 V14開始,S7-1200 V4.2支持V2版本

功能與V1版本不同的是

(1)標(biāo)準(zhǔn)Byte數(shù)組可以是優(yōu)化數(shù)據(jù)塊的數(shù)組

(2)Deserialize的SRC_ARRAY支持Array[*] of Byte

使用舉例:

編寫FC,實(shí)現(xiàn)清零各種DB塊的變量

思路:

1. 將需要清空的DB塊內(nèi)所有變量放入Struct/UDT,或者將需要清空的數(shù)據(jù)塊建立成UDT類型生成的DB,然后使用Deserialize(反序列化)指令清空。

2. 用于清空的Byte數(shù)組可以使用M區(qū)。對(duì)于S7-1211C與S7-1212C有4kB的M區(qū),對(duì)于S7-1214C、S7-1215C、S7-1217C有8kB的M區(qū),通常不會(huì)用到很多,這樣可以利用其中靠后不常用的區(qū)域,例如2kB來清空最多2kB的DB塊。

3. 有多個(gè)不同的結(jié)構(gòu)的DB,都可以先后清空。

編寫的FC、DB及調(diào)用,如圖6-8所示。

2f986e38-bf89-11ec-9e50-dac502259ad0.jpg

圖6 FC編寫

2fb7ec5e-bf89-11ec-9e50-dac502259ad0.jpg

圖7 使用的DB24

2fd3f106-bf89-11ec-9e50-dac502259ad0.jpg

圖8 FC調(diào)用

圖8中DB37為UDT_1類型生成的DB,可以直接填寫在Variant類型的InOut_1的實(shí)參處,并且完整清空DB37。

--------------------END------------------

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    616

    瀏覽量

    29506
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    420

    瀏覽量

    27368
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    335

    瀏覽量

    19559

原文標(biāo)題:S7-1200:Deserialize(反序列化)、Serialize(序列化)

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    JSON:簡(jiǎn)潔代碼高效搞定序列化反序列化

    面對(duì)頻繁的數(shù)據(jù)交互需求,用最簡(jiǎn)方式實(shí)現(xiàn)JSON序列化反序列化已成為開發(fā)者必備技能,借助主流庫,輕松實(shí)現(xiàn)零負(fù)擔(dān)數(shù)據(jù)轉(zhuǎn)換。JSON(JavaScriptObjectNotation)是一種輕量級(jí)
    的頭像 發(fā)表于 02-25 19:04 ?98次閱讀
    JSON:簡(jiǎn)潔代碼高效搞定<b class='flag-5'>序列化</b>與<b class='flag-5'>反序列化</b>

    IO序列化操作:提升系統(tǒng)互操作性的關(guān)鍵技術(shù)

    在異構(gòu)系統(tǒng)并存的今天,IO序列化操作成為實(shí)現(xiàn)系統(tǒng)間互操作性的核心技術(shù)。通過標(biāo)準(zhǔn)的數(shù)據(jù)格式(如JSON、Protobuf、Hessian等),不同語言、平臺(tái)的系統(tǒng)得以無縫交換信息。合理設(shè)計(jì)序列化策略
    的頭像 發(fā)表于 02-25 16:02 ?58次閱讀
    IO<b class='flag-5'>序列化</b>操作:提升系統(tǒng)互操作性的關(guān)鍵技術(shù)

    【ioqueue】 IO序列化操作全解析

    從內(nèi)存對(duì)象到可存儲(chǔ)或可傳輸?shù)淖止?jié)流,IO序列化操作完成了數(shù)據(jù)形態(tài)的轉(zhuǎn)化。這一過程不僅涉及編碼與解碼邏輯,還需處理版本兼容、安全性與性能開銷等問題。全面掌握這一技術(shù)路徑,有助于構(gòu)建更加健壯的應(yīng)用系統(tǒng)
    的頭像 發(fā)表于 02-24 19:22 ?89次閱讀
    【ioqueue】 IO<b class='flag-5'>序列化</b>操作全解析

    極簡(jiǎn)代碼,搞定JSON序列化反序列化

    快速實(shí)現(xiàn)JSON數(shù)據(jù)的生成(序列化)與解析(反序列化)。 目前json庫已全面支持LuatOS開發(fā)系列產(chǎn)品,開發(fā)者可根據(jù)項(xiàng)目實(shí)際需求,靈活選用并進(jìn)行快速集成與開發(fā)。 一、 JSON基礎(chǔ)要點(diǎn) 在
    的頭像 發(fā)表于 02-23 21:46 ?332次閱讀
    極簡(jiǎn)代碼,搞定JSON<b class='flag-5'>序列化</b>與<b class='flag-5'>反序列化</b>

    深入剖析LMH0030:SMPTE標(biāo)準(zhǔn)數(shù)字視頻序列化器的卓越之選

    深入剖析LMH0030:SMPTE標(biāo)準(zhǔn)數(shù)字視頻序列化器的卓越之選 在當(dāng)今數(shù)字的時(shí)代,數(shù)字視頻處理技術(shù)日新月異。對(duì)于電子工程師而言,選擇一款性能卓越、功能豐富的數(shù)字視頻序列化器至關(guān)重要。今天,我們
    的頭像 發(fā)表于 12-30 14:00 ?291次閱讀

    深入解析LM2512A:高性能RGB顯示接口序列化

    深入解析LM2512A:高性能RGB顯示接口序列化器 在電子設(shè)備的顯示領(lǐng)域,如何高效、穩(wěn)定地傳輸高質(zhì)量的圖像數(shù)據(jù)是一個(gè)關(guān)鍵問題。TI的LM2512A作為一款專門的移動(dòng)像素鏈路(MPL - 1)24位
    的頭像 發(fā)表于 12-26 11:30 ?417次閱讀

    SN65HVS885:工業(yè)自動(dòng)的理想數(shù)字輸入序列化

    SN65HVS885:工業(yè)自動(dòng)的理想數(shù)字輸入序列化器 在工業(yè)和建筑自動(dòng)領(lǐng)域,對(duì)于高通道密度數(shù)字輸入模塊的需求日益增長(zhǎng)。德州儀器(TI)的SN65HVS885作為一款八通道數(shù)字輸入序列化
    的頭像 發(fā)表于 12-25 11:00 ?446次閱讀

    深度解析DS90UH929-Q1:720p HDMI 到 FPD-Link III 橋接序列化

    深度解析DS90UH929-Q1:720p HDMI 到 FPD-Link III 橋接序列化器 在電子工程師的日常工作中,選擇一款合適的器件來實(shí)現(xiàn)特定功能至關(guān)重要。今天,我們聚焦于德州儀器(TI
    的頭像 發(fā)表于 12-22 15:50 ?357次閱讀

    DS90UH947-Q1:1080p OpenLDI至FPD - Link III序列化器的深度解析

    DS90UH947-Q1:1080p OpenLDI 至 FPD - Link III 序列化器的深度解析 在當(dāng)今的電子設(shè)備領(lǐng)域,視頻傳輸技術(shù)的發(fā)展日新月異,對(duì)于高質(zhì)量、高速率視頻傳輸?shù)男枨笠苍絹碓?/div>
    的頭像 發(fā)表于 12-22 15:40 ?328次閱讀

    輕量級(jí)參數(shù)的管理框架(C語言)

    反序列化操作。 方便在本地儲(chǔ)存設(shè)備(如flash、eeprom等)保存/讀取二進(jìn)制數(shù)據(jù),甚至還可以跨設(shè)備傳輸使用 提供了兩種方式: 第一種:只需要提供參數(shù)數(shù)據(jù)保存/加載的回調(diào)函數(shù),調(diào)用相關(guān)接口函數(shù)
    發(fā)表于 12-16 06:24

    天拓四方分享:什么事S7-1200 G2++?

    中國(guó)市場(chǎng)動(dòng)態(tài),致力于滿足廣大用戶的多樣需求。基于此,西門子在 S7-1200 G2 的基礎(chǔ)上,精心打造了增強(qiáng)型 PLC——S7-1200 G2++。此次推出的型號(hào)包含 S7 - 12
    的頭像 發(fā)表于 09-05 17:17 ?1299次閱讀

    西門子S7-1200 G2的7大亮點(diǎn)及最新功能

    西門子S7-1200 G2是新發(fā)布的新一代可編程邏輯控制器(PLC),作為S7-1200系列的升級(jí)版,它在硬件設(shè)計(jì)、性能、運(yùn)動(dòng)控制、通信能力和安全功能等方面進(jìn)行了顯著改進(jìn),適用于中小型自動(dòng)
    的頭像 發(fā)表于 07-03 17:04 ?3606次閱讀
     西門子<b class='flag-5'>S7-1200</b> G2的<b class='flag-5'>7</b>大亮點(diǎn)及最新功能

    快手上線鴻蒙應(yīng)用高性能解決方案:數(shù)據(jù)反序列化性能提升90%

    普通對(duì)象(如 JSON 數(shù)據(jù))與類實(shí)例進(jìn)行互轉(zhuǎn),是實(shí)現(xiàn)面向?qū)ο缶幊膛c數(shù)據(jù)序列化解耦的核心工具。隨著業(yè)務(wù)復(fù)雜度的提升,該庫在反序列化過程中逐漸暴露出性能瓶頸,影響用戶核心體驗(yàn)。因此
    發(fā)表于 05-15 10:01

    spartan 6 14位LVDS 反序列化

    spartan 6系列的FPGA 與14位ADC 輸出LVDS信號(hào) 怎么實(shí)現(xiàn)1:14的串轉(zhuǎn)并呢?iserdes2 在ise里面最高只能實(shí)現(xiàn)8位啊
    發(fā)表于 04-25 15:20

    什么是SerDes?SerDes有哪些應(yīng)用?

    SerDes是一種功能塊,用于對(duì)高速芯片間通信中使用的數(shù)字數(shù)據(jù)進(jìn)行序列化反序列化。用于高性能計(jì)算(HPC)、人工智能(AI)、汽車、移動(dòng)和物聯(lián)網(wǎng)(IoT)應(yīng)用的現(xiàn)代片上系統(tǒng)(SoC)都實(shí)現(xiàn)了
    的頭像 發(fā)表于 03-27 16:18 ?6338次閱讀
    什么是SerDes?SerDes有哪些應(yīng)用?