本測試在虛擬機中進行
1,工具:VS2019、S7-PLCSIM Advanced V3、博圖V15
一台虛擬機中安裝了VS2019和S7-PLCSIM Advanced V3,另一個虛擬機安裝了博圖V15.
2,配置
虛擬機配置:網絡建議采用NAT模式,不容易造成IP沖突。
博圖設置
PLC型號為1515-2PN,兩個以太網卡的地址分別為
192.168.0.210,C#通過此地址和PLCSIM通訊
192.168.91.210,博圖通過此地址和PLCSIM通訊
如下圖
設置項目支持仿真,方法如下:
1,右鍵項目-屬性
2,塊編譯時支持仿真勾上。
S7-PLCSIM配置
程序編寫
C#程序
using S7.Net;
using System;
namespace s71200
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
Plc plc = new Plc(CpuType.S71500,"192.168.0.210" + "",0,0);
//連接plc,可能會拋異常,用try-catch提示
try
{
//1,連接到PLC
plc.Open();
if (plc.IsConnected)
{
Console.WriteLine("PLC連接成功");
}
//從plc讀取數據
bool b = Convert.ToBoolean(plc.Read("M0.0"));
Console.WriteLine("讀取M0.0的值為{0}",b);
bool c = Convert.ToBoolean(plc.Read("M2.0"));
Console.WriteLine("讀取M2.0的值為{0}",c);
//寫數據到PLC
plc.WriteBit(DataType.Memory,0,0,0,true);
//重新讀一下M0.0有無變化。
b= Convert.ToBoolean(plc.Read("M0.0"));
Console.WriteLine("讀取M0.0的值為{0}",b);
c = Convert.ToBoolean(plc.Read("M2.0"));
Console.WriteLine("讀取M2.0的值為{0}",c);
//關閉到plc的連接
plc.Close();
}
catch
{
Console.WriteLine("PLC連接失敗,請檢查連接參數");
}
}
}
}
這個程序執行時,會把M0.0置1上面的PLC起保停程序會導通,則M2.0會變成1,現在讓程序跑一下
可以看到通訊正常,對PLC的讀寫是OK的。
總結,本文寫的比較亂,如果有疑問的話,歡迎在指正,謝謝。
更新:在同一台電腦測試配置如下
測試的時候一直連接不上,把另一個網卡禁用后才可以,只用這個虛擬的以太網卡。