ayusecret
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 171 個
工控威望: 246 點
下載積分: 773 分
在線時間: 69(小時)
注冊時間: 2021-10-31
最后登錄: 2024-09-19
查看ayusecret的 主題 / 回貼
樓主  發(fā)表于: 2022-06-06 16:45
花兩天半純手敲的代碼,代碼有點亂,周五就要出差了,沒時間整理了,原本只是幫同事用小助手測個MC協(xié)議,也不知道腦袋一熱敲了一堆代碼,收益匪淺啊,分享給大家
測試工具:
R04 CPU,3E幀通訊(理論支持Q系列,可打開Gxwork3 e-Manual搜索3E幀得到手冊內(nèi)容)


TCP通訊小助手(測試報文用)


Python環(huán)境編寫代碼 版本3.10.4


Gxwork3(配置CPU參數(shù),理論上Q系列使用Gxwork2也可)
整體的一個思路如下:
1.用小助手報文測試進行報文測試,如果有響應(yīng),無論對錯,至少通訊上了,再根據(jù)發(fā)送的報文和響應(yīng)的報文,根據(jù)手冊幀定義進行拆分解讀.
2.參考網(wǎng)上代碼,用Python實現(xiàn)Socket通訊到PLC,為下一個環(huán)節(jié)做準備.
3.先直接把前面測試成功的報文,以字符串形式(需解碼成字節(jié))用Socket直接發(fā)給PLC
4.如果前面測試成功,就開始封裝幀,以某個元件(我是以"D元件")開始,編輯指令,再根據(jù)需要,擴展其他元件,反復(fù)優(yōu)化,迭代

目前實現(xiàn):
D元件單雙字寫入,單進度浮點數(shù)寫入,可正負,浮點數(shù)可能有精度丟失
M元件0,1 寫入
TN 將其當成D理解去處理
TC,TS,X,Y將其當成M去處理,注意M地址是10進制而X,Y是16進制,需對類型進行區(qū)分

限制:
1.幀有部分內(nèi)容暫時寫死,軟元件有部分子指令暫時寫死
2.目前只封裝批量讀寫指令,個人認為只需要這兩個即可,隨機讀寫指令實際應(yīng)用中應(yīng)該比較少就沒寫了.

總結(jié):
1.純練習項目,還未實際應(yīng)用,目前測試數(shù)據(jù)還算正常.發(fā)出來只是給大家做個參考
2.說來慚愧,干自動化那么多年,還沒接觸上位機開發(fā),為了實現(xiàn)這些代碼也是網(wǎng)上參考了很多函數(shù)技巧,后面有機會再嘗試試試多線程,做數(shù)據(jù)庫相關(guān)的內(nèi)容3
3.主要困難點在于
1.float數(shù)據(jù)如何傳到PLC,又如何讀出來解讀.(參考規(guī)格化浮點數(shù)定義)
,網(wǎng)上沒有實用的函數(shù)參考,為了實現(xiàn)并測試我足足研究了一個下午
2.數(shù)據(jù)正負的實現(xiàn)
4.臨時敲的代碼,可能還有很多Bug,望指正.




附件: main.py.rar (5 K) 下載次數(shù):163
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
本帖最近評分記錄:
  • 下載積分:+5(崇慶陽光) 好貼好貼!
  • 下載積分:+2(guochunyi) 好貼好貼!
    ayusecret
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 171 個
    工控威望: 246 點
    下載積分: 773 分
    在線時間: 69(小時)
    注冊時間: 2021-10-31
    最后登錄: 2024-09-19
    查看ayusecret的 主題 / 回貼
    1樓  發(fā)表于: 2022-06-06 16:47
    圖片:
    補上測試效果圖
    lyntechme
    虛心做人,踏實做事
    級別: 家園?
    精華主題: 0
    發(fā)帖數(shù)量: 564 個
    工控威望: 709 點
    下載積分: 12711 分
    在線時間: 256(小時)
    注冊時間: 2012-03-31
    最后登錄: 2023-06-04
    查看lyntechme的 主題 / 回貼
    2樓  發(fā)表于: 2022-06-13 08:21
    感謝,很好的分享,有參考價值
     
    justsososo
    級別: 正式會員
    精華主題: 0
    發(fā)帖數(shù)量: 56 個
    工控威望: 93 點
    下載積分: 664 分
    在線時間: 16(小時)
    注冊時間: 2021-08-12
    最后登錄: 2024-01-10
    查看justsososo的 主題 / 回貼
    3樓  發(fā)表于: 2022-11-17 10:39
    python有專門的MC協(xié)議的庫MelsecMcNet
    djkate
    豫申小哥
    級別: 家園常客
    精華主題: 0
    發(fā)帖數(shù)量: 435 個
    工控威望: 871 點
    下載積分: 12320 分
    在線時間: 114(小時)
    注冊時間: 2022-09-21
    最后登錄: 2024-09-18
    查看djkate的 主題 / 回貼
    4樓  發(fā)表于: 2022-11-23 15:50
    妙極,正好參考

    引用
    引用樓主ayusecret于2022-06-06 16:45發(fā)表的 三菱MC協(xié)議的Python實現(xiàn),純手敲! :
    花兩天半純手敲的代碼,代碼有點亂,周五就要出差了,沒時間整理了,原本只是幫同事用小助手測個MC協(xié)議,也不知道腦袋一熱敲了一堆代碼,收益匪淺啊,分享給大家
    測試工具:
    R04 CPU,3E幀通訊(理論支持Q系列,可打開Gxwork3 e-Manual搜索3E幀得到手冊內(nèi)容)
    [attachment=268528]
    TCP通訊小助手(測試報文用)
    .......