99国产精品一区二区,国模私拍一区二区三区,性XXXXX欧美极品少妇,久久久久A V

歡迎光臨入喜工業(yè)控制技術(shù)(上海)有限公司
當(dāng)前位置
首頁(yè) > 新聞中心
西門子關(guān)于使用BLKMOV指令由BYTE轉(zhuǎn)換位字符串的疑問
2021/7/6 10:39:13
西門子關(guān)于使用BLKMOV指令由BYTE轉(zhuǎn)換位字符串的疑問

請(qǐng)問可位大神,在DB塊中,有一個(gè)區(qū)間是BYTE【120】,此區(qū)間是PC傳送給PLC的,并且內(nèi)容應(yīng)該是一串字符串。此時(shí)我使用了BLKMOV將BYTE[120]這個(gè)區(qū)間傳送到另一個(gè)我定義的STRING[120]的區(qū)間,轉(zhuǎn)換位字符串。這里有兩個(gè)問題:一是聽說(shuō)前兩個(gè)BYTE是字符串的最長(zhǎng)長(zhǎng)度和有效長(zhǎng)度,從第三個(gè)BYTE開始才是字符串內(nèi)容,但是我實(shí)際試下來(lái)好像并非如此,從第一個(gè)BYTE開始就是內(nèi)容了,請(qǐng)問這是怎么回事?第二個(gè)問題是究竟從BYTE【120】傳到STRING【120】他里面的內(nèi)部規(guī)則是什么樣子的?


圖片說(shuō)明:

           

1、你說(shuō)的是通訊是系統(tǒng)加的數(shù)據(jù)流的頭和尾,接收后頭尾自動(dòng)刪除了,所以你看不到這個(gè)信息,除非你自己寫通訊功能。
2、它是一一對(duì)應(yīng)的
首先需要厘清2個(gè)問題:
1、BLKMOV指令,僅僅以“塊BLOCK”為單位搬運(yùn)數(shù)據(jù),沒有轉(zhuǎn)換數(shù)據(jù)類型的功能,是一個(gè)空間對(duì)另一個(gè)空間的存儲(chǔ)內(nèi)容(二進(jìn)制序列)的復(fù)制,不涉及數(shù)據(jù)類型。
2、字節(jié)BYTE并不等同CHAR。CHAR字符在計(jì)算機(jī)上存儲(chǔ),是以其ASCII碼存儲(chǔ)的,占一個(gè)字節(jié)BTYE。換句話說(shuō),任何一個(gè)字符CHAR有一個(gè)BYTE數(shù)據(jù)與之對(duì)應(yīng)。但并不是所有的byte類型數(shù)據(jù)都有與之對(duì)應(yīng)的字符,如00H,進(jìn)行ASCII碼轉(zhuǎn)換是空操作,沒有對(duì)應(yīng)任何字符。
因此,你在Array of Byte到String進(jìn)行轉(zhuǎn)換時(shí),必須確認(rèn)每個(gè)字節(jié)的值的有效性。
3、字符數(shù)組,不等同于字符串。字符數(shù)組是字符(ASCII碼)為元素的一個(gè)隊(duì)列。而字符串,除了這個(gè)隊(duì)列外,在隊(duì)列之前還必須有兩個(gè)字節(jié)用于申明:這個(gè)隊(duì)列允許的最大長(zhǎng)度是多少,當(dāng)前實(shí)際長(zhǎng)度是多少,多了兩個(gè)字節(jié)。
再回到你的問題,建議分兩步實(shí)現(xiàn):
1、BLKMOV的目標(biāo)操作數(shù),修改為:P#DB1074.DBX956.0為P#DB1074.DBX958.0后移兩個(gè)字節(jié)。
2、對(duì)DB1074.DBb957賦值120.

用 Chars_TO_Strg 指令。
如圖是數(shù)據(jù)定義、以及測(cè)試的示例
資料
https://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/07-Program/03-instruction/02-Extend/02-String.htm


圖片說(shuō)明:

  

聯(lián)系方式
CONTACT US

電話:13818569113      15721373211

郵箱:fushidianji@139.com

網(wǎng)址:http://www.jiansujiabc.com

地址:上海青浦區(qū)北青公路7171號(hào)111-112室

用手機(jī)掃描二維碼關(guān)閉