如果用C#編寫程序讀寫西門子PLC?
工控課堂【www.gkket.com】工程師必備網站
添加微信:gkket123 加入500人工控微信群
電氣工控自動化-超萬元免費資料
S7.NET是一個C#編寫的,以太網連接西門子帶有Profinet接口CPU的dll驅動庫,官方文件介紹可連接S7-200、S7-300、S7-400、S7-1200、S7-1500。(經本人測試,也可連接S7200 SMART)
1、連接S7200 SMART需使用S71200、S71500驅動都可以。
2、讀寫S7200或S7200 SMART的V區數據時,DB塊號需設置為1。
3、使用中發現下面兩個bug:
public object Read(DataType dataType, int db, int startByteAdr, VarType varType, int varCount)
public ErrorCode Write(DataType dataType, int db, int startByteAdr, object value)
上述兩個函數無法完成位操作,請使用其他函數代替。
public object Read(DataType dataType, int db, int startByteAdr, VarType varType, int varCount)
該函數在讀取DInt(32位有符號整型)數據時出現問題,讀取不了負數,負數時,值始終為-2147483648。
4、本程序中一次僅讀取1個數據,實際應用中請按照S7.NET文檔修改!
1、連接S7200 SMART:
測試硬件:CPU SR20,自帶以太網接口
2、連接S7-200:(因該系列CPU無以太網接口,需外接模塊,如:西門子CP243-1,大連德嘉CP243u、ETH-ibus等)
測試硬件:S7-200 CPU226 CN + 大連德嘉CP243u模塊(西門子CP243-1設置太麻煩,這里用CP243u代替,協議都一樣)。
3、連接S7-300:(該系列PLC也多數不帶以太網口,需外接模塊,如CP343-1、大連德嘉ETH-MPI(Plus)等)
測試硬件1:CPU 314 + ETH-MPI(Plus) (同上,CP343-1設置同樣麻煩,這里用ETH-MPI(Plus)代替,協議一樣)
測試硬件2:CPU315-2PN/DP,自帶以太網接口
4、連接S7-1200:
測試硬件:CPU 1214C AC/DC/Rly
5、連接S7-1500:
測試硬件:CPU 1511-1PN
6、連接S7-400:未經測試,鄙人手上無S7-400 CPU,如有哪位幫忙測試,請告知結果(請給出詳細硬件說明)。
下面是PLC建立連接部分代碼片段:
建立連接:
讀函數:
寫函數:
這里有一條非常重要的設置,之前忘記了,現在補上:如下圖,1500或者1200編程的時候下圖兩個地方需要注意:
讀寫DB塊的話下面這兩個地方需要設置一下:
轉發是最大的鼓勵!謝謝您的支持!
重要通知
想加入工控PLC學習技術交流群
請添加班長為好友
并備注:地區-行業-姓名昵稱獲取進群資格。
工控PLC學習 專業專注分享
分享到朋友圈,和朋友們一起分享吧
——————————————————————
? 來源:工控課堂www.gkket.com,侵刪!
? 聲明:我們尊重原創。文字圖片視頻素材,版權屬于原作者。部分文章推送時因種種原因未能與原作者聯系上,若涉及版權問題,敬請原作者聯系我們刪除處理(聯系17621634088-微信同號),我們只做分享之用,不用于商業。
她們都關注了,你還等什么?
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















