1756-IM16I
1756-IM16I
1756-IM16I
http://S7.NET是一個C#編寫的,以太網(wǎng)連接西門子帶有Profinet接口CPU的dll驅(qū)動庫,官方文件介紹可連接S7-200、S7-300、S7-400、S7-1200、S7-1500。(經(jīng)本人測試,也可連接S7200 SMART)
http://S7.NET使用問題說明:(本人踩過的坑,寫給大家借鑒一下)
1、連接S7200 SMART需使用S71200、S71500驅(qū)動都可以。
2、讀寫S7200或S7200 SMART的V區(qū)數(shù)據(jù)時,DB塊號需設(shè)置為1。
3、使用中發(fā)現(xiàn)下面兩個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)
上述兩個函數(shù)無法完成位操作,請使用其他函數(shù)代替。
public object Read(DataType dataType, int db, int startByteAdr, VarType varType, int varCount)
該函數(shù)在讀取DInt(32位有符號整型)數(shù)據(jù)時出現(xiàn)問題,讀取不了負數(shù),負數(shù)時,值始終為-2147483648。
4、本程序中一次僅讀取1個數(shù)據(jù),實際應(yīng)用中請按照http://S7.NET文檔修改!
測試環(huán)境說明:
1、連接S7200 SMART:
測試硬件:CPU SR20,自帶以太網(wǎng)接口
2、連接S7-200:(因該系列CPU無以太網(wǎng)接口,需外接模塊,如:西門子CP243-1,大連德嘉CP243u、ETH-ibus等)
測試硬件:S7-200 CPU226 CN + 大連德嘉CP243u模塊(西門子CP243-1設(shè)置太麻煩,這里用CP243u代替,協(xié)議都一樣)。
3、連接S7-300:(該系列PLC也多數(shù)不帶以太網(wǎng)口,需外接模塊,如CP343-1、大連德嘉ETH-MPI(Plus)等)
測試硬件1:CPU 314 + ETH-MPI(Plus) (同上,CP343-1設(shè)置同樣麻煩,這里用ETH-MPI(Plus)代替,協(xié)議一樣)
測試硬件2:CPU315-2PN/DP,自帶以太網(wǎng)接口
4、連接S7-1200:
測試硬件:CPU 1214C AC/DC/Rly
5、連接S7-1500:
測試硬件:CPU 1511-1PN
6、連接S7-400:未經(jīng)測試,鄙人手上無S7-400 CPU,如有哪位幫忙測試,請告知結(jié)果(請給出詳細硬件說明)。
下面是PLC建立連接部分代碼片段:
建立連接:
讀函數(shù):
寫函數(shù):
這里有一條非常重要的設(shè)置,之前忘記了,現(xiàn)在補上:如下圖,1500或者1200編程的時候下圖兩個地方需要注意:
讀寫DB塊的話下面這兩個地方需要設(shè)置一下: