flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
樓主  發(fā)表于: 2023-08-29 12:32
天天做工控,做的很無聊, 嘗試自己寫了博圖文件解析。

西門子的數(shù)據(jù)塊解釋文件長這樣,  可以用博圖得到。
DATA_BLOCK "hah"
{ DB_Accessible_From_OPC_UA := 'FALSE' ;
S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
NON_RETAIN
   STRUCT
      "1" : Bool;
      "2" : Struct
         "3" : Array[0..1] of Struct
            "8" : Bool;
         END_STRUCT;
         "4" : Array[0..1] of Struct
            "1" : Bool;
            "2" : Bool;
            "3" : Bool;
            "4" : Array[0..1] of Struct
               "5" : Bool;
               "6" : Bool;
            END_STRUCT;
            "7" : Array[0..1] of Struct
               "1" : Bool;
            END_STRUCT;
         END_STRUCT;
      END_STRUCT;
      "3" : Bool;
   END_STRUCT;
BEGIN
END_DATA_BLOCK



下面是轉(zhuǎn)換效果, 感興趣的朋友可以交流。


西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
1樓  發(fā)表于: 2023-11-02 16:32
要問這個(gè)有什么用,  用C# 寫個(gè)上位機(jī)通信時(shí)一定用的到。
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
2樓  發(fā)表于: 2023-11-02 16:32
怎么沒有人感興趣啊,  歡迎圍觀。
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
3樓  發(fā)表于: 2023-11-02 17:58
引用
引用第3樓都是風(fēng)景幸會(huì)于2023-11-02 16:41發(fā)表的  :
很感興趣  樓主繼續(xù)更新啊 最近也在學(xué)C#想先寫個(gè)觸摸屏 不知都有什么教程推薦沒有

  一般都去B站找找學(xué)習(xí)資源。看自己合適的。
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
4樓  發(fā)表于: 2023-11-02 17:59
引用
引用第4樓frostspirit于2023-11-02 16:43發(fā)表的  :
你這是用S7netplus的嗎

是的 , 就是那個(gè)庫。  測(cè)試到3萬個(gè)變量 , 200ms
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
5樓  發(fā)表于: 2024-03-23 21:45
再截個(gè)復(fù)雜一點(diǎn)的解析    
          以前都是S7通信,  但數(shù)據(jù)量太大的時(shí)候,比如 幾十個(gè)6W字節(jié)的數(shù)據(jù)塊,  轉(zhuǎn)到SOCKET了   。 用SOCKET采集,  單個(gè)變量還是S7 寫到PLC .  
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
6樓  發(fā)表于: 2024-03-23 21:50
編程解讀的思路,就是分析文件特點(diǎn), 其實(shí)都是字符串?dāng)?shù)組拆分, 合并, 字典數(shù)據(jù)結(jié)構(gòu)應(yīng)用,集合遍歷,F(xiàn)OR循環(huán), 沒用到什么新鮮玩意。
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
7樓  發(fā)表于: 2024-03-27 15:01
引用
引用第10樓海你好咸于2024-03-27 14:11發(fā)表的  :
有一個(gè)問題,如果里面有結(jié)構(gòu)體數(shù)據(jù),除非提前將結(jié)構(gòu)體輸入到上位機(jī)代碼里


==========
博圖-->從塊生成源-->包含所有關(guān)聯(lián)塊
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家
flyfeky
bilibili 工控貴族
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 884 個(gè)
工控威望: 1033 點(diǎn)
下載積分: 1985 分
在線時(shí)間: 687(小時(shí))
注冊(cè)時(shí)間: 2012-05-09
最后登錄: 2024-11-06
查看flyfeky的 主題 / 回貼
8樓  發(fā)表于: 2024-03-28 18:02
引用
引用第13樓海你好咸于2024-03-28 13:48發(fā)表的  :
最后讀取PLC數(shù)據(jù)的時(shí)候你是怎么操作的?先根據(jù)數(shù)據(jù)類型進(jìn)行歸類,地址從小到大單個(gè)的就單個(gè)讀,連續(xù)就批量讀?

還是說拿到這個(gè)數(shù)據(jù)結(jié)構(gòu)在代碼里寫個(gè)類,最后用反射的方式來讀取或?qū)懭搿?br />

你用反射類試一下,應(yīng)該可行。我是做一張變量表,查詢地址對(duì)順序?qū)?yīng)
西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家