You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lj_plc/DataBlockHelper/DBHelpers/DB191WriteHelper.cs

204 lines
5.3 KiB
C#

using HslCommunication.Profinet.Siemens;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataBlockHelper.DBHelpers
{
public class DB191WriteHelper
{
private static readonly string DbName = "DB191";
private static SiemensS7Net siemensS7Net = PlcConnect.Instance;
public static void SetVesselModeA(bool state1, bool state2)
{
AddVesselMode(0, state1, state2);
}
public static void SetSiloGroupA(bool state1, bool state2, bool state3, bool state4, bool state5)
{
AddSiloGroup(0, state1, state2, state3, state4, state5);
}
public static void SetSiloA(bool state1, bool state2, bool state3, bool state4)
{
AddSilo(0, state1, state2, state3, state4);
}
public static void SetClearAlarmA(bool state1)
{
AddClearAlarm(0, state1);
}
public static void SetStartA(bool state1)
{
AddStart(0, state1);
}
public static void SetStopA(bool state1)
{
AddStop(0, state1);
}
public static void SetVesselModeB(bool state1, bool state2)
{
AddVesselMode(4, state1, state2);
}
public static void SetSiloGroupB(bool state1, bool state2, bool state3, bool state4, bool state5)
{
AddSiloGroup(4, state1, state2, state3, state4, state5);
}
public static void SetSiloB(bool state1, bool state2, bool state3, bool state4)
{
AddSilo(4, state1, state2, state3, state4);
}
public static void SetClearAlarmB(bool state1)
{
AddClearAlarm(4, state1);
}
public static void SetStartB(bool state1)
{
AddStart(4, state1);
}
public static void SetStopB(bool state1)
{
AddStop(4, state1);
}
public static void SetVesselModeC(bool state1, bool state2)
{
AddVesselMode(8, state1, state2);
}
public static void SetSiloGroupC(bool state1, bool state2, bool state3, bool state4, bool state5)
{
AddSiloGroup(8, state1, state2, state3, state4, state5);
}
public static void SetSiloC(bool state1, bool state2, bool state3, bool state4)
{
AddSilo(8, state1, state2, state3, state4);
}
public static void SetClearAlarmC(bool state1)
{
AddClearAlarm(8, state1);
}
public static void SetStartC(bool state1)
{
AddStart(8, state1);
}
public static void SetStopC(bool state1)
{
AddStop(8, state1);
}
public static void SetPanelOnOffA(bool state1)
{
AddPanelOnOff(0, state1);
}
public static void SetPanelOnOffB(bool state1)
{
AddPanelOnOff(1, state1);
}
public static void SetPanelOnOffC(bool state1)
{
AddPanelOnOff(2, state1);
}
private static void AddVesselMode(int start, bool state1, bool state2)
{
AddPanel(0 + start, 0, state1);
AddPanel(0 + start, 1, state2);
}
private static void AddSiloGroup(int start, bool state1, bool state2, bool state3, bool state4, bool state5)
{
AddPanel(0 + start, 2, state1);
AddPanel(0 + start, 3, state2);
AddPanel(0 + start, 4, state3);
AddPanel(0 + start, 5, state4);
AddPanel(0 + start, 6, state5);
}
private static void AddSilo(int start, bool state1, bool state2, bool state3, bool state4)
{
AddPanel(0 + start, 7, state1);
AddPanel(1 + start, 0, state2);
AddPanel(1 + start, 1, state3);
AddPanel(1 + start, 2, state4);
}
private static void AddClearAlarm(int start, bool state1)
{
AddPanel(1 + start, 3, state1);
}
private static void AddStart(int start, bool state1)
{
AddPanel(1 + start, 5, state1);
}
private static void AddStop(int start, bool state1)
{
AddPanel(1 + start, 6, state1);
}
private static void AddPanelOnOff(int bit, bool state)
{
AddPanel(30, bit, state);
}
private static void AddPanel(int start, int bit, bool state)
{
siemensS7Net.Write($"{DbName}.{start}.{bit}", state);
}
public static void AddDianJi(int start, bool state)
{
Dictionary<int, string> dic = new Dictionary<int, string>()
{
[0] = "30.3",
[1] = "30.4",
[2] = "30.5",
[3] = "30.6",
[4] = "30.7",
[5] = "31.0",
[6] = "31.1",
[7] = "31.2",
[8] = "31.3",
[9] = "31.4",
[10] = "31.5",
[11] = "31.6",
[12] = "31.7",
[13] = "32.0",
[14] = "32.1",
[15] = "32.2",
[16] = "32.3",
};
string val = dic[start];
siemensS7Net.Write($"{DbName}.{val}", state);
}
}
}