c# - 通过 C# 读/写 S7-1200 位内存

标签 c# plc s7-1200 siemens

我正在尝试为 S7-1200 CPU 中的 bool 内存设置值,我使用了 SNAP7 库但无法成功:

Result result = new Result();
byte[] Buffer = new byte[26];
Client.DBRead(1, 0, 2, Buffer); 
result.bArret = S7.GetBitAt(Buffer, 0, 1);
result.bMarche = S7.GetBitAt(Buffer, 0, 2);
Client.DBWrite(1, 0, 10, buff);

我的目标是能够在内存中写入值: enter image description here

这是数据 block 1:

enter image description here

我需要在不使用 OPC 或其他第三方软件的情况下完成此任务。

最佳答案

通过用数据 block 变量替换 Merkers 解决了问题,这里是一个例子:

        S7Client client = new S7Client();
        int res = client.ConnectTo("192.168.0.10", 0, 0);

        int DBNumber;
        int Size;
        int Result;
        byte[] buffer = new byte[2];
        DBNumber = System.Convert.ToInt32(1);
        Size = System.Convert.ToInt32(2);
        Result = client.DBWrite(DBNumber, 0, Size, buffer);
        buffer[0] = 1;
        buffer[1] = 1;
        Result = client.DBWrite(DBNumber, 0, Size, buffer);

希望将来有人会发现它有用。

关于c# - 通过 C# 读/写 S7-1200 位内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37989473/

相关文章:

c# - 猜测用户将在文本框中输入什么

c# - 在方法上使用 await Task.Factory.StartNew 将立即返回

plc - 如何防止梯形图(PLC)中被零除?

python - S7-1200,Snap7 : Exception: CLI : function refused by CPU (Unknown error)

python snap7 windows - 找不到 snap7 库

c# - WPF Datagrid 不显示所有值

c# - 执行 IEnumerable 方法

plc - 如何声明局部变量 (Allen Bradley studio 5000)

java - PLC-IT通讯