← Back to dashboard

File view

plc_comm_utility.lib

1
//$Id: $
2
/*
3
  2013/08/28 Carl Eggleston
4
  New Library
5
*/
6
7
/*** BeginHeader */
8
9
#ifndef __ISM_COMM_UTILITY_
10
#define __ISM_COMM_UTILITY_
11
12
13
/*** EndHeader */
14
15
/*** BeginHeader
16
17
     ModBusCheckIn,
18
     InitCommUtility
19
*/
20
21
//Global function prototypes **************************************************
22
23
24
#if MODBUS_ON
25
	 void		ModBusCheckIn();
26
#endif
27
void InitCommUtility();
28
29
#if MODBUS_ON
30
	typedef struct
31
	{
32
	   int GenAlarm;
33
      int GenRun;
34
	   int PresAlarm;
35
	   int DTLowAlarm;
36
	   int DTHighAlarm;
37
	   int DTlvl;
38
	   int DTLagPump;
39
	   int DTSumpAlarm;
40
      int ProbeError;
41
	} ModBusStruct;
42
   ModBusStruct	  CommData[2];
43
#endif
44
45
/*** EndHeader */
46
47
//Local function prototypes *********************************************
48
49
50
//Constants *******************************************************
51
52
53
54
/*** Local variables ***/
55
56
57
58
//Code  ************************************************************************
59
60
61
62
// Comm Utiltity Init **********************************************************
63
64
void InitCommUtility()
65
{
66
	int i;
67
68
	#if MODBUS_ON
69
	   for (i = 0 ; i < 2 ; i++)
70
	   {
71
	      CommData[i].GenAlarm = 0;
72
         CommData[i].GenRun = 0;
73
	      CommData[i].PresAlarm = 0;
74
	      CommData[i].DTLowAlarm = 0;
75
	      CommData[i].DTHighAlarm = 0;
76
	      CommData[i].DTlvl = 0;
77
	      CommData[i].DTLagPump = 0;
78
	      CommData[i].DTSumpAlarm = 0;
79
         CommData[i].ProbeError = 0;
80
	   }
81
82
      SetGeneratorAlarm(OFF);
83
      SetGeneratorRun(OFF);
84
      SetLinePressureFlowAlarm(OFF);
85
      SetDayTankCriticalLowLevelAlarm(OFF);
86
      SetDayTankCriticalHighLevelAlarm(OFF);
87
      SetDayTankProbeStatus(OFF);
88
      SetDayTankLagPumpEnergized(OFF);
89
      SetDayTankInterstitialSensor(OFF);
90
      SetDayTankProbeError(OFF);
91
   #endif
92
93
}
94
95
// ModBus Check In *************************************************************
96
97
#if MODBUS_ON
98
void	ModBusCheckIn()
99
   {
100
   	int i;
101
102
      if (CommData[1].GenAlarm == ON)
103
      {
104
      	if (CommData[0].GenAlarm == OFF)
105
         {
106
         	printf("MODBUS Comm - Gen Alarm - ON\n");
107
      		SetGeneratorAlarm(ON);
108
         }
109
      }
110
		else if (CommData[0].GenAlarm == ON)
111
      {
112
         printf("MODBUS Comm - Gen Alarm - OFF\n");
113
         SetGeneratorAlarm(OFF);
114
      }
115
      SetGeneratorAlarm(CommData[1].GenAlarm);
116
      CommData[0].GenAlarm = CommData[1].GenAlarm;
117
118
      if (CommData[1].GenRun == ON)
119
      {
120
      	if (CommData[0].GenRun == OFF)
121
         {
122
         	printf("MODBUS Comm - Gen Run - ON\n");
123
      		SetGeneratorRun(ON);
124
         }
125
      }
126
		else if (CommData[0].GenRun == ON)
127
      {
128
         printf("MODBUS Comm - Gen Run - OFF\n");
129
         SetGeneratorRun(OFF);
130
      }
131
      SetGeneratorRun(CommData[1].GenRun);
132
      CommData[0].GenRun = CommData[1].GenRun;
133
134
      CommData[1].PresAlarm = OFF;
135
      #if BMO_HARRIS
136
	      for (i = 0 ; i < Product[0].N_Turbines ; i++)
137
	      {
138
	         if (Channel[i].PresAlmFlag)
139
	            CommData[1].PresAlarm = ON;
140
	      }
141
      #else
142
	      for (i = 0 ; i < N_ISM ; i++)
143
	      {
144
	         if (Channel[i].PresAlmFlag)
145
	            CommData[1].PresAlarm = ON;
146
	      }
147
      #endif
148
      if (CommData[1].PresAlarm == ON)
149
      {
150
      	if (CommData[0].PresAlarm == OFF)
151
         {
152
         	printf("MODBUS Comm - Pressure Alarm - ON\n");
153
            SetLinePressureFlowAlarm(ON);
154
         }
155
      }
156
      else if (CommData[0].PresAlarm == ON)
157
      {
158
         printf("MODBUS Comm - Pressure Alarm - OFF\n");
159
         SetLinePressureFlowAlarm(OFF);
160
      }
161
      SetLinePressureFlowAlarm(CommData[1].PresAlarm);
162
      CommData[0].PresAlarm = CommData[1].PresAlarm;
163
164
/*** BeginHeader */
165
#endif
166
/*** EndHeader */