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

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

請問可位大神,在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è)問題:一是聽說前兩個(gè)BYTE是字符串的最長長度和有效長度,從第三個(gè)BYTE開始才是字符串內(nèi)容,但是我實(shí)際試下來好像并非如此,從第一個(gè)BYTE開始就是內(nèi)容了,請問這是怎么回事?第二個(gè)問題是究竟從BYTE【120】傳到STRING【120】他里面的內(nèi)部規(guī)則是什么樣子的?


圖片說明:

           

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

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


圖片說明:

  

聯(lián)系方式
CONTACT US

電話:13818569113      15721373211

郵箱:fushidianji@139.com

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

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

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