PLC上位机开发的几个难题:
1.没有设备开发上位机程序啊?
2.不懂PLC仿真环境怎么编写测试?
3.有设备一定要等PLC写完了才能开始编写控制吗?
这里提供一个西门子的虚拟测试环境,可以通过编程完成基本的逻辑测试;
代码先上
static S7Server Server; //声明一个PLC
static S7Client Client; //声明一个客户端;
static private byte[] DB1 = new byte[512];//声明一个DB位
static private byte[] DB2 = new byte[512];//声明一个DB位
static private byte[] DB3 = new byte[512];//声明一个DB位
Server = new S7Server(); //实例一个PLC
Client = new S7Client(); //实例一个客户端
Server.RegisterArea(S7Server.srvAreaDB, 1, DB1, DB1.Length); //注册DB空间,申请内存空间
Server.RegisterArea(S7Server.srvAreaDB, 2, DB2, DB2.Length);//注册DB空间,申请内存空间
Server.RegisterArea(S7Server.srvAreaDB, 3, DB3, DB2.Length);//注册DB空间,申请内存空间
int errorcode = Server.Start(); //启动一台PLC;
Console.WriteLine(errorcode);
// 这样PLC就建立完成了;
// 创建客户端连接
Client.SetConnectionParams("127.0.0.1", 0, 2);
Client.Connect();
// 读取PLCCPU信息;
S7Client.S7CpuInfo info = new S7Client.S7CpuInfo();
Client.GetCpuInfo(ref info);
Console.WriteLine(info.ASName);
Console.WriteLine(Client.Connected());
//往DB2里面写4个字节;
Client.DBWrite(2, 0, 4, new byte[] { 1, 2, 3, 4 });
//读取PLC中DB2中的0~3的4个字节
byte[] buffer = new byte[4];
int i = Client.DBRead(2, 0, 4, buffer);
完整项目地址:
https://github.com/servucn/S7Functions-Test