西门子PLC上位机开发最低C#测试环境搭建

西门子PLC上位机开发最低C#测试环境搭建

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

 

 

留言