s7.net写存储区

Bit => bool
Byte => byte
word => ushort
DWord => uint
Int => short
DInt => int
Real => float
LReal => double
String => string
第一种:字符串写入
1、bool可以直接写
plc.Write("DB3.DBX4.0", false);
2、Dint双字可以直接写,4个字节,64位,默认int
plc.Write("DB3.DBD0", 211);//"数据块_2".Dint01
3、数据块中的Uint、Int、Word,都是单字,2个字节32位,必须C#转ushort无符号整数类型才能写入
ushort Uint01 = 12;
plc.Write("DB3.DBW262", Uint01);//"数据块_2".Uint01
short val13 = 123;
plc.Write("DB3.DBW520", val13);//"数据块_2".Int01
ushort val14 = 1234;
plc.Write("DB3.DBW1036", val14);//"数据块_2".word01
如果赋值的长度大于本身长度,会赋值0,会同步影响后面数据
3、float
double是8个字节64位
float是4个字节32位
写float不能直接用26.5这样的double数字
float在数据块里面定义为Real,监视位浮点数
decimal后面加m,float后面加f,double不加字母
double double01 = 25.5; decimal decimal01 = 25.5m; float float01 = 25.5f; plc.Write("DB3.DBD1054", float01);//"数据块_2".float01
第二种:Write方法多参数写入
Write(DataType,db,startAddr,value,[bitAddr]);
//DB1.DBX0.0 plc.Write(DataType.DataBlock, 1, 0, false, 0); //QW1 180 ushort uVal = 180; plc.Write(DataType.Output, 0, 1, uVal);
第三种:Write(DataItem) Write(DataItem[]) 一次性写多个值
DataItem di = new DataItem(); di.DataType = DataType.Memory; di.DB = 0; di.StartByteAdr = 0; di.BitAdr = 3; di.Value = true; int iVal = 88; DataItem di1 = new DataItem(); di1.DataType = DataType.DataBlock; di1.DB = 1; di1.StartByteAdr = 16; di1.Value = iVal; plc.Write(di,di1);
浙公网安备 33010602011771号