public void TestSetLDTAt(byte[] expected, int ticks) { var buffer = new byte[8]; S7.SetLDTAt(buffer, 0, new DateTime(1970, 1, 1).AddTicks(ticks)); buffer.ShouldBe(expected); }
public void TestSetDTLAt(byte[] expected) { var buffer = new byte[16]; S7.SetDTLAt(buffer, 0, new DateTime(2570, 10, 10, 10, 10, 0)); buffer.ShouldBe(expected); }
public void TestSetLTODAt(byte[] expected, int ticks) { var buffer = new byte[8]; S7.SetLTODAt(buffer, 0, new DateTime(ticks)); buffer.ShouldBe(expected); }
[Fact] public void TestSetBitAt() { var buffer = new byte[] { 1, 2, 3, 4 }; S7.SetBitAt(ref buffer, 0, 1, true); buffer.ShouldBe(new byte[] { 3, 2, 3, 4 }); }
public void TestSetByteAt() { var buffer = new byte[] { 1, 2, 3, 4 }; S7.SetByteAt(buffer, 0, (byte)5); buffer.ShouldBe(new byte[] { 5, 2, 3, 4 }); }
public void TestSetTODAt(byte[] expected, int milliseconds) { var buffer = new byte[4]; S7.SetTODAt(buffer, 0, new DateTime(0).AddMilliseconds(milliseconds)); buffer.ShouldBe(expected); }
private void ReadTransactionDB() { while (isConnected) { transactClient.DBRead(3100, 0, transactReadBuffer.Length, transactReadBuffer); readTransactionID = S7.GetByteAt(transactReadBuffer, 45); S7.SetByteAt(transactWriteBuffer, 94, 1); transactClient.DBWrite(3101, 0, transactWriteBuffer.Length, transactWriteBuffer); if (readTransactionID == 0 && !handshakeCleared) { handshakeCleared = true; if (isConnected) { S7.SetByteAt(transactWriteBuffer, 45, 1); int result1 = transactClient.DBWrite(3101, 0, transactWriteBuffer.Length, transactWriteBuffer); Console.WriteLine("-------------------------" + "\nTransaction ID : 1" + "\nWrite Result : " + result1 + "\n-------------------------"); } } if ((readTransactionID != oldReadTransactionID) && handshakeCleared) { Console.WriteLine("Transaction ID IN : " + readTransactionID); oSignalTransactEvent.Set(); oldReadTransactionID = readTransactionID; } Thread.Sleep(50); } }
public static void Main() { S7 vr1 = new S7(new S5(1, new S0(0))); System.Console.WriteLine(vr1.F0.F0); System.Console.WriteLine(vr1.F0.F1.F0.F1); }
private void Write1200() { for (int i = 0; i < 100; i++) { if (int_all_Byte_Q[i] != 0) { //byte[] byteArray = System.Text.Encoding.Default.GetBytes(int_all_Byte_Q[i].ToString()); S7.SetByteAt(buffer_write_temp12, i, BitConverter.GetBytes(int_all_Byte_Q[i])[0]); //S7.SetByteAt(buffer_write_temp12, 1, 49); } else { buffer_write_temp12[i] = 0; } } // DB_write.DB_data1200 = 20; int DBNumber; int Size; int Result; DBNumber = 2001; Size = 100; Result = Client1200.DBWrite(DBNumber, 800, Size, buffer_write_temp12); //执行写操作 if (Result != 0) //结果为0,则表示执行结果ok { // MessageBox.Show("1200写入失败"); } }
public void Echo() { client.DBRead(1021, 0, echoReadBuffer.Length, echoReadBuffer); heartBeat = S7.GetIntAt(echoReadBuffer, 0); S7.SetIntAt(echoWriteBuffer, 0, (short)heartBeat); int writeResult = client.DBWrite(1022, 0, echoWriteBuffer.Length, echoWriteBuffer); }
//20201120 读取字符串 public string getChars(string plcIp, int Rack, int Slot, int DbNum, int Start, int Length) { byte[] Buffer = new byte[Length]; Client.ConnectTo(plcIp, Rack, Slot); Client.DBRead(DbNum, Start, Length, Buffer);//读取DbwNum所对应的字的值 return(S7.GetCharsAt(Buffer, 0, Length)); }
public void WriteOutput(int startIndex, int offset, bool on) { try { S7Client client = new S7Client(); int restultClient = client.ConnectTo("192.168.0.1", 0, 0); if (restultClient == 0) { Console.WriteLine("Connected to PLC"); } else { Console.WriteLine(client.ErrorText(restultClient)); return; } byte[] writeBuffer = new byte[1]; S7.SetBitAt(ref writeBuffer, 0, 1, on); int result = client.WriteArea(S7Consts.S7AreaDB, 1, startIndex * 8 + offset, 1, S7Consts.S7WLBit, writeBuffer); if (result != 0) { Console.WriteLine("Error: " + client.ErrorText(result)); } client.Disconnect(); } catch (Exception ex) { Console.WriteLine("Write output: " + ex.Message); } }
public void WriteCableNok() { S7Client client = new S7Client(); int restultClient = client.ConnectTo("192.168.0.1", 0, 0); if (restultClient == 0) { Console.WriteLine("Connected to PLC"); } else { Console.WriteLine(client.ErrorText(restultClient)); return; } byte[] writeBuffer = new byte[1]; int startIndex = 32; S7.SetBitAt(ref writeBuffer, 0, 1, true); int result = client.WriteArea(S7Consts.S7AreaDB, 1, startIndex * 8 + 4, 1, S7Consts.S7WLBit, writeBuffer); if (result != 0) { Console.WriteLine("Error: " + client.ErrorText(result)); } client.Disconnect(); }
public void TestSetStringAt(string test, byte[] expected) { var buffer = new byte[200]; S7.SetStringAt(buffer, 0, buffer.Length, test); buffer.Take(expected.Length).ToArray().ShouldBe(expected); }
public void TestSetCharsAt(string chars, byte[] expected) { var buffer = new byte[chars.Length]; S7.SetCharsAt(buffer, 0, chars); buffer.ShouldBe(expected); }
public int readPlcDbwValue(string plcIp, int Rack, int Slot, int DbNum, int DbwNum) { Client.ConnectTo(plcIp, Rack, Slot); Client.DBRead(DbNum, DbwNum, 2, Buffer);//读取DbwNum所对应的字的值 Client.Disconnect(); return(S7.GetIntAt(Buffer, 0)); }
public void CanLiftUserDefinedConversionOperator() { S7?a = new S7(42), b = null; Assert.AreEqual((double?)a, 42, "#1"); Assert.IsNull((double?)b, "#2"); }
public static void StateMotor(int numDB) { // Initialisation var res = -1; // Résultat de la fonction byte[] Buffer = new byte[2]; // Buffer 2 bytes byte[] BufferBis = new byte[55]; // Buffer 10 bytes if (Main._statusConnection) { res = Main.Client.DBRead(numDB, 80, 2, Buffer); } BitArray arBits = new BitArray(Buffer); // Convert buffer bytes to array of bits for (int i = 0; i < 15; i++) { Main._arStateMotor.Add(arBits.Get(i)); // Fill the array } if (Main._statusConnection) { res = Main.Client.DBRead(numDB, 56, 55, BufferBis); } Main._dspdMotor = S7.GetRealAt(BufferBis, 0); Main._dintMotor = S7.GetIntAt(BufferBis, 6) / 10; Main._dspdFMotor = S7.GetDIntAt(BufferBis, 48) / 100; }
public void CanLiftUserDefinedBinaryOperator() { S7?a = new S7(42), b = new S7(32), c = null; Assert.AreEqual((a + b).Value.I, 74, "#1"); Assert.IsNull((a + c), "#2"); }
public void CanLiftUserDefinedUnaryOperator() { S7?a = new S7(42), b = null; Assert.AreEqual(-a.Value.I, -42, "#1"); Assert.IsNull(-b, "#2"); }
public void checkZustand() { try { if (verbindungsStatus) { Byte[] buffer = new Byte[1]; client.DBRead(datenbaustein, dbByte, 8, buffer); runLast = run; run = S7.GetBitAt(buffer, 0, dbBit); } else { verbindung = client.ConnectTo(ipAdresse, rack, slot); if (client.Connected) { Byte[] buffer = new Byte[1]; client.DBRead(datenbaustein, dbByte, 8, buffer); run = S7.GetBitAt(buffer, 0, dbBit); } } } catch (Exception ex) { MetroFramework.MetroMessageBox.Show(frame, ex.Message + "\n" + ex.StackTrace, "Fehler bei Aktualliserung", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } }
private void Write1200() { // textBox3.Text = "sss"; //byte[] byteArray = System.Text.Encoding.Default.GetBytes("123456"); for (int i = 0; i < 30; i++) { //if (i == 3) { buffer_write_temp12[i]=byteArray} buffer_write_temp12[i] = 0; } DB_write.DB_data1200 = 20; // S7.SetWordAt(byteArray, 0, DB_write.DB_data1200); //将十进制的20写入到Buffer1200[0]字节 //读取字时高字节在前低字节在后 S7.SetByteAt(buffer_write_temp12, 0, 44); S7.SetByteAt(buffer_write_temp12, 1, 49); // Declaration separated from the code for readability int DBNumber; int Size; int Result; DBNumber = 6000; Size = 20; // Result = Client1200.DBWrite(DBNumber, D1200_index, Size, buffer_write_temp12); //执行写操作 Result = Client1200.DBWrite(DBNumber, 0, Size, buffer_write_temp12); //执行写操作 ShowResult1200(Result); if (Result != 0) //结果为0,则表示执行结果ok { MessageBox.Show("1200写入失败"); } //MessageBox.Show("1200读取失败"); }
private bool WriteBit(int db, int bytePos, int bitInByte, bool value) { var inBuff = new byte[1]; var writeResult = -1; lock (_lockObject) { var readResult = _s7Plc.DBRead(db, bytePos, 1, inBuff); if (readResult > 0) { PlcLastErrorMessage = _s7Plc.ErrorText(readResult); RaiseError(); return(false); } S7.SetBitAt(ref inBuff, 0, bitInByte, value); writeResult = _s7Plc.DBWrite(db, bytePos, 1, inBuff); if (readResult > 0) { PlcLastErrorMessage = _s7Plc.ErrorText(writeResult); RaiseError(); } } return(writeResult == 0); }
public bool SetSetPoint(int value) { var outBuffer = new byte[2]; var writeResult = -1; if (!IsPlcConnected()) { return(false); } S7.SetIntAt(outBuffer, 0, (short)value); lock (_lockObject) { writeResult = _s7Plc.DBWrite(10, 2, 2, outBuffer); if (writeResult > 0) { PlcLastErrorMessage = _s7Plc.ErrorText(writeResult); RaiseError(); } } return(writeResult > 0); }
public static double ReadWeldingCurrent(S7Client client) { result = client.DBRead(1024, 0, 8, ReadBuffer); double dbCurrent = S7.GetDIntAt(ReadBuffer, 4); return(dbCurrent); }
public void Parse(byte[] buffer, int start) { plcDateTime = S7.GetDateTimeAt(buffer, start); start = start + 8; logEntryNumber = S7.GetDIntAt(buffer, start); start = start + 4; SRMNumber = S7.GetIntAt(buffer, start); start = start + 2; logEntryType = S7.GetStringAt(buffer, start); start = start + 52; logEntryDescription = S7.GetStringAt(buffer, start); start = start + 202; functionName = S7.GetStringAt(buffer, start); start = start + 52; operationMode = S7.GetStringAt(buffer, start); start = start + 52; faultOrWarningState = (FaultOrWarningState)S7.GetIntAt(buffer, start); start = start + 2; XPosition_mm = S7.GetDIntAt(buffer, start); start = start + 4; YPosition_mm = S7.GetDIntAt(buffer, start); start = start + 4; Z1Position_mm = S7.GetIntAt(buffer, start); start = start + 2; Z2Position_mm = S7.GetIntAt(buffer, start); start = start + 2; Z3Position_mm = S7.GetIntAt(buffer, start); start = start + 2; Z4Position_mm = S7.GetIntAt(buffer, start); start = start + 2; XTarget_mm = S7.GetDIntAt(buffer, start); start = start + 4; YTarget_mm = S7.GetDIntAt(buffer, start); start = start + 4; Z1Target_mm = S7.GetIntAt(buffer, start); start = start + 2; Z2Target_mm = S7.GetIntAt(buffer, start); start = start + 2; Z3Target_mm = S7.GetIntAt(buffer, start); start = start + 2; Z4Target_mm = S7.GetIntAt(buffer, start); start = start + 2; XSpeed_mmps = S7.GetIntAt(buffer, start); start = start + 2; YSpeed_mmps = S7.GetIntAt(buffer, start); start = start + 2; Z1Speed_mmps = S7.GetIntAt(buffer, start); start = start + 2; Z2Speed_mmps = S7.GetIntAt(buffer, start); start = start + 2; Z3Speed_mmps = S7.GetIntAt(buffer, start); start = start + 2; Z4Speed_mmps = S7.GetIntAt(buffer, start); start = start + 2; }
/// <summary> /// 自动步骤 /// </summary> /// <param name="client"></param> /// <param name="dbNum"></param> /// <param name="dbByteLength"></param> /// <param name="dbStartElement"></param> /// <returns></returns> public static string[] ReadAutoStep(S7Client client, int dbNum, int dbByteLength, int dbStartElement) { // int dbInt; // dbInt = S7.GetIntAt(ReadBuffer, Convert.ToInt16(element)); // value = "" + dbInt; //double dbLReal = S7.GetLRealAt(ReadBuffer, 94);//读取Real位置在94 //txtReadServoPos.Text = dbLReal.ToString(); result = client.DBRead(dbNum, 0, dbByteLength, ReadBuffer);//dbNum from 0 length dbByteLength byte int dbInt = S7.GetIntAt(ReadBuffer, dbStartElement); for (int i = 1; i <= strAutoSteps.Length; i++) { if (i == dbInt) { strAutoStep[0] = strAutoSteps[i - 1];//当前步骤 if (i == strAutoSteps.Length) { strAutoStep[1] = strAutoSteps[0]; //下一步骤 } else { strAutoStep[1] = strAutoSteps[i]; } } } return(strAutoStep); }
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (s7Client.Connected()) { byte[] buf = new byte[1]; int result = s7Client.DBRead(1, 0, 1, buf); if (result != 0) { toolStripStatusLabel1.Text = s7Client.ErrorText(result); return; } else { int flag = S7.GetByteAt(buf, 0); toolStripStatusLabel1.Text = flag.ToString(); } buf[0] = (byte)(buf[0] ^ 0x01); //S7.SetIntAt(buf, 0, 0x01); result = s7Client.DBWrite(1, 0, 1, buf); if (result != 0) { toolStripStatusLabel1.Text = s7Client.ErrorText(result); } } }
public void TestSetS7TimespanAt(int milliseconds, byte[] expected) { var buffer = new byte[8]; S7.SetS7TimespanAt(buffer, 0, TimeSpan.FromMilliseconds(milliseconds)); buffer.Take(expected.Length).ToArray().ShouldBe(expected); }
public void TestSetCounterAt(int index, int counter, ushort[] expected) { var buffer = new ushort[2]; S7.SetCounterAt(buffer, index, counter); buffer.ShouldBe(expected); }
public static extern void InvokeCallback7(MyCallback7 callback, S7 s);
public static extern S7 InvokeCallback7R(MyCallback7 callback, S7 s);