S7.net通讯通讯库c#读取一


 300-400不支持网口

 

第一种读取方式:地址字符串去掉前缀%

1、按位读取

var val1=  plc.Read("DB1.DBX0.0");

 读取到的是监视的值,不是修改值

2、按字访问 ---150
var val2 = plc.Read("DB1.DBW6");

3、字节中按拉读取,第4位 true
var val3 = plc.Read("DB1.DBX1.3");

 4、浮点型,按双字读取 26.8

自动按双字uint 处理,32位

  先转换成数字

再转化为浮点

var val4 = plc.Read("DB1.DBD2"); //uint
//转成byte[]
byte[] arrVal4 = BitConverter.GetBytes((uint)val4);
//byte[]转换成float,从0开始的4个字节
float f4 = BitConverter.ToSingle(arrVal4, 0);

 

任何修改都要重新下载 装载到PLC里面

 

输入I区 I0.0
var val5 = plc.Read("I0.0");

输出Q区 QW1
var val6 = plc.Read("QW1");

位存储中间区M区 M0.3
var val7 = plc.Read("M0.3");

 

数组中的第二个整数

var val8 = plc.Read("DB1.DBD12");

 

 

 

 

二、读取的第二种方式,可以多个连续读取

Read(dataType,db,startaddr,count,bitaddr);


//DB1.DBX0.0 按拉访问
var val1 = plc.Read(
DataType.DataBlock, //读取的存储区 db块
1, //db的地址 db1 ---1 db2---2 对于I、Q、M区---0
0, //读取的字节的开始位置 偏移量值
VarType.Bit, //读取单位 位
1, //读取的数量
0// 如果是按位读取,位的地址
);

 

//I5.4
var val2 = plc.Read(
DataType.Input, //读取的存储区 I区
0, //db的地址 db1 ---1 db2---2 对于I、Q、M区---0
5, //读取的字节的开始位置 偏移量值
VarType.Bit, //读取单位 位
1, //读取的数量
4// 如果是按位读取,位的地址
);

 


//QW1
var val3 = plc.Read(
DataType.Output, //读取的存储区 Q区
0, //db的地址 db1 ---1 db2---2 对于I、Q、M区---0
1, //读取的字节的开始位置 偏移量值
VarType.Word, //读取单位 字
1 //读取的数量
);

 


//读取了数组中的两个值 uint数组
var val4 = plc.Read(DataType.DataBlock, 1, 12, VarType.DWord, 2);

 

 

完整代码

View Code

 

posted on 2025-03-14 14:25  张彦山  阅读(452)  评论(0)    收藏  举报