【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据

思路

JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与WINCC之间进行连接,实现WINCC与PLC之间连接,最后自己封装方法把他们串联起来。

目录

思路

​C#直连PLC并读取PLC数据

1.首先你得知道PLC网络IP

2.端口默认 102

3.查看机架和插槽

4.查看新建数据的变量地址

5.配置PLC权限,让他可以直接C#拥有读写权限

​编辑6.代码编写案例地址

7.代码讲解

 7.1C#读取PLC的数据,需要用到 S7.Net

7.2执行案例


​C#直连PLC并读取PLC数据

1.首先你得知道PLC网络IP

在博途中查看到,运行的IP地址为 192.168.0.1

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第1张图片

2.端口默认 102

3.查看机架和插槽

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第2张图片

从下图中可以看到,机架和插槽为0,1【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第3张图片

4.查看新建数据的变量地址

地址公式:数据模块编号 + "." + 数据类型(DBX,DBW,DBD 对应 Bool,ushort,float)+变异量

所以下面的变量数据地址为:BD3.DBX0.0

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第4张图片

5.配置PLC权限,让他可以直接C#拥有读写权限

如果不走这一步,后面代码汇报做

Unhandled exception. S7.Net.PlcException: Received 12 bytes: '32-02-00-00-00-00-00-00-00-00-81-04', expected 19 bytes.

---> S7.Net.PlcException: Received 12 bytes: '32-02-00-00-00-00-00-00-00-00-81-04', expected 19 bytes.

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第5张图片

设置完全权限

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第6张图片

勾选 允许来自远程对象的PUT/GET通讯访问

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第7张图片

然后将项目从新编译,并装载进PLC!!!!!!!!!!!!!!!!!!!!!!!!!!!

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第8张图片

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第9张图片6.代码编写案例地址

https://download.csdn.net/download/qq_59747594/88580348

7.代码讲解

将项目用Visual Studio打开,demo案例在下面位置

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第10张图片

 7.1C#读取PLC的数据,需要用到 S7.Net

using S7.Net;
//引用通信,可以自行网上搜索如何安装,一堆资料

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
            const short TestServerPort = 102;//PLC运行的端口地址
            const string TestServerIp = "192.168.0.1";//PLC运行的IP地址

            // new Plc(CpuType.S71200, PLC的IP, PLC的端口, PLC的机架, PLC的插槽);
            var plc = new Plc(CpuType.S71200, TestServerIp, TestServerPort, 0, 1);
            plc.Open();

            Console.WriteLine($"是否已连接: {plc.IsConnected}");
            // 数据变量的地址
            var addr = "DB1.DBX0.0";
            Console.WriteLine($"原始值: {plc.Read(addr)}");

            plc.Write(addr, 1);
            Console.WriteLine($"修改后: {plc.Read(addr)!}");
            Console.ReadLine();

        }
    }
}

7.2执行案例

【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第11张图片【傻瓜级JS-DLL-WINCC-PLC交互】7.C#直连PLC并读取PLC数据_第12张图片

你可能感兴趣的:(javascript,开发语言,c#,.net)