Помощь в написании студенческих работ
Антистрессовый сервис

Библиографический список. 
Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации

РефератПомощь в написанииУзнать стоимостьмоей работы

RFC 5128 — State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs). Режим доступа: http://tools.ietf.org/html/rfc5128. Контроллеры MC8.1 и MC8.2. Руководство пользователя (РЭ). Режим доступа: http://80.240.100.130:8080/mc8_re.pdf. Работа с программой КОНГРАФ. Краткое описание. Режим доступа: http://80.240.100.130:8080/ko_kongraf.pdf. If defined (DEVICE_MC8… Читать ещё >

Библиографический список. Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации (реферат, курсовая, диплом, контрольная)

  • 1. ПТК КОНТАР. Краткое описание. [Электронный ресурс]. Режим доступа: http://80.240.100.130:8080/kontar.pdf
  • 2. Контроллеры MC8.1 и MC8.2. Краткое описание. [Электронный ресурс]. Режим доступа: http://80.240.100.130:8080/mc8_ko.pdf
  • 3. Модуль MCP.3 Руководство пользователя. [Электронный ресурс]. Режим доступа: http://80.240.100.130:8080/mcp3_re.pdf
  • 4. [Электронный ресурс]. Режим доступа: http://www.chinfa.com/04product/download/pdf/DINRAIL/dran30.pdf
  • 5. Citect SCADA, technical overview. [Электронный ресурс]. Режим доступа: http://citect.com/documents/brochures/citectscada-technical-overview.pdf
  • 6. RFC 3715 — IPsec-Network Address Translation (NAT) Compatibility. [Электронный ресурс]. Режим доступа: http://tools.ietf.org/html/rfc3715
  • 7. WDS Linked Router Network. [Электронный ресурс]. Режим доступа: http://www.dd-wrt.com/wiki/index.php?title=WDS_Linked_router_network
  • 8. Леонов В. Развертывание распределённых беспроводных сетей (WDS) в домашних условиях. [Электронный ресурс]. Режим доступа: http://www.ferra.ru/online/networks/s26267/print/
  • 9. RFC 3947 — Negotiation of NAT-Traversal in the IKE. [Электронный ресурс]. Режим доступа: http://tools.ietf.org/html/rfc3947
  • 10. RFC 5128 — State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs). [Электронный ресурс]. Режим доступа: http://tools.ietf.org/html/rfc5128
  • 11. OpenVPN HowTo. [Электронный ресурс]. Режим доступа: http://www.openvpn.net/index.php/open-source/documentation/howto.html
  • 12. Контроллеры MC8.1 и MC8.2. Руководство пользователя (РЭ). [Электронный ресурс]. Режим доступа: http://80.240.100.130:8080/mc8_re.pdf
  • 13. Работа с программой КОНГРАФ. Краткое описание. [Электронный ресурс]. Режим доступа: http://80.240.100.130:8080/ko_kongraf.pdf
  • 14. Корсаков М. Н., Бабикова А. В. Методические указания по выполнению технико-экономического обоснования дипломных работ студентов инженерных специальностей. — Таганрог: Изд-во ТТИ ЮФУ, 2009.
  • 15. Компаниец В. С. Учебно-методическое пособие по выполнению раздела «Безопасность и экологичность» в дипломных проектах (работах) Таганрог: ТТИ ЮФУ, 2008.

Приложение А

Таблица — конфигурационная карта MCP3.

_SATURATION (_PID2AOOVR_YULM, OUTPUT, ydn, yup);

*YULM = _PID2AOOVR_YULM;

}

#endif

#ifndef USEMULT

#define USEMULT

void _MULT (unsigned char* X, float* Y)

{

#define xdata

int i;

float Result;

float xdata* InpArr;

if (X ≠ NULL)

{

Result = 1;

InpArr = (float*)&X[1];

for (i = 0; i < X[0]; i++)

Result *= InpArr[i];

*Y = Result;

}

}

#endif

//———-conditional operator—————

#ifndef USECONDITIONAL

#define USECONDITIONAL

#define _CONDITIONAL (X1, X2, Q, Y) Y=Q?X1:X2

#endif

//—————————————————————————————-

#ifndef USEOR

#define USEOR

void _OR (unsigned char* X, unsigned char* Y)

{

#define xdata

int i;

unsigned char Result;

unsigned char* InpArr;

if (X ≠ NULL)

{

Result = false;

InpArr = (unsigned char*)&X[1];

for (i = 0; i < X[0]; i++)

Result = Result||InpArr[i];

*Y = Result;

}

}

#endif

//—————————————————————————————-

#ifndef USEBOOLVAR

#define USEBOOLVAR

#define _BOOLVAR (x, y) y=x

#endif

//———-conditional operator—————

#ifndef USECONDB

#define USECONDB

#define _CONDB (X1, X2, Q, Y) Y=Q?X1:X2

#endif

#ifndef USEBUTTON

#define USEBUTTON

xdata char_BUTTON_PREVIOUS;

unsigned char _BUTTON (unsigned char Q, unsigned char *Z)

{

*Z = Q;

if (Q&&!_BUTTON_PREVIOUS)

{

Q = false;

_Save_Command = 0×5555;

}

_BUTTON_PREVIOUS=*Z;

return Q;

}

#endif

//———————————————————————————

#ifndef USESPLITFLOAT

#define USESPLITFLOAT

//———————————————————————————

struct FloatExpAndMan

{

short exponent;

float mantissa;

};

union FloatBitStruct

{

float value;

long bits;

};

void SplitFloat (float value, struct FloatExpAndMan *result)

{

#define xdata

union FloatBitStruct bitStruct;

bitStruct.value = value;

result->exponent = (short) ((bitStruct.bits >> 23) & 0×00ff) — 0x7e;

bitStruct.bits &= 0×807fffff;

bitStruct.bits |= 0x3f000000;

result->mantissa = bitStruct. value;

}

//———————————————————————————

#endif

//———————————————————————————

#ifndef USELN

#define USELN

void _LN (float x, float *y)

{

const float code a0 = -2.1 724 098;

const float code a1 = 4.1 744 959;

const float code a2 = -2.8 551 644;

const float code a3 = 8.537 5156E-1;

const float code LN2 = 0.6 931 572;

struct FloatExpAndMan xdata xExpAndMan;

if (x <= 0)

{

*y = 0;

return;

}

SplitFloat (x, &xExpAndMan);

*y = (a0 + a1*xExpAndMan.mantissa +

a2*xExpAndMan.mantissa*xExpAndMan.mantissa +

a3*xExpAndMan.mantissa*xExpAndMan.mantissa*xExpAndMan.mantissa) +

LN2*xExpAndMan.exponent;

}

#endif

//———————-Thermister function———————————————————————-

#ifndef USETHERMISTOR

#define USETHERMISTOR

void _THERMISTOR (float INPUT, float* CEL, float* FAR, int TYPE)

{

#define ThermA2 1.12 9241E-3

#define ThermB2 2.34 1077E-4

#define ThermC2 8.77 5468E-8

#define ThermA3 1.2 8444E-3

#define ThermB3 2.39 2435E-4

#define ThermC3 1.56 2216E-7

#define xdata

float b;

xdata float RT;

float RealTemp;

float ThermA, ThermB, ThermC;

#ifdef DEVICE_MC8125

PSBANK=0×21;

#endif

if (INPUT)

RT = Coefs[_INNUM][T10k]/(Ureference/INPUT — 1);

else

RT = 0;

#ifdef DEVICE_MC8125

PSBANK=0×11;

#endif

if (TYPE==3)

{

ThermA = ThermA3;

ThermB = ThermB3;

ThermC = ThermC3;

}

else{

ThermA = ThermA2;

ThermB = ThermB2;

ThermC = ThermC2;

}

if (RT > 0.0)

{

_LN (RT, &b);

RealTemp = 1/(ThermA + ThermB*b + ThermC*b*b*b) — 273.16;

}

else

RealTemp = -273.16;

  • *CEL = RealTemp;
  • *FAR = RealTemp*1.8 + 32;

}

#endif

//———————-Thermister function———————————————————————-

#ifndef USETHERMISTORBR

#define USETHERMISTORBR

xdata unsigned char _THERMISTORBR_FAUL;

xdata float _THERMISTORBR_INPUTN1;

xdata float _THERMISTORBR_STORAGE;

xdata unsigned char _THERMISTORBR_FLAG;

xdata unsigned char _THERMISTORBR_EXCN1;

void _THERMISTORBR (float INPUT, float* CEL, float* FAR, unsigned char *FAULT, int TYPE)

{

#define xdata

Библиографический список. Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации.
Библиографический список. Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации.
Библиографический список. Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации.
float Temp;

float Temp;

float Speed;

unsigned char Faul;

unsigned char Exceeding;

float ShortCircuitLimit, BreakLimit;

#ifdef DEVICE_MC5

ShortCircuitLimit = 10;

BreakLimit = 0.95*Ureference;

#else

ShortCircuitLimit = 5;

BreakLimit = 2400;

#endif

#define _THERMISTORBR_MAX_SPEED400

if (!_Inited) {

_THERMISTORBR_FAUL = false;

_THERMISTORBR_INPUTN1 = INPUT;

_THERMISTORBR_STORAGE = 0;

_THERMISTORBR_FLAG = false;

_THERMISTORBR_EXCN1 = false;

}

Faul = (INPUT BreakLimit);

Speed = (INPUT — _THERMISTORBR_INPUTN1) / _CYCLE;

if (Speed < 0)

Speed = -1 * Speed;

Exceeding = (Speed > _THERMISTORBR_MAX_SPEED);

if (((Faul && !(_THERMISTORBR_FAUL & 0x1f)) && !Exceeding && !(_THERMISTORBR_EXCN1 & 0×3)) ||

(Exceeding && !_THERMISTORBR_FLAG && !(_THERMISTORBR_FAUL & 0x1f))) {

if (Exceeding)

_THERMISTORBR_FLAG = true;

_THERMISTORBR_STORAGE = _THERMISTORBR_INPUTN1;

}

if (!Exceeding || Faul)

_THERMISTORBR_FLAG = false;

if (_THERMISTORBR_FLAG || Faul || (_THERMISTORBR_EXCN1 & 0×3) || (_THERMISTORBR_FAUL & 0×3))

Temp = _THERMISTORBR_STORAGE;

else

Temp = INPUT;

_THERMISTOR (Temp, CEL, FAR, TYPE);

*FAULT = Faul && (_THERMISTORBR_FAUL & 1);

_THERMISTORBR_INPUTN1 = INPUT;

_THERMISTORBR_FAUL = _THERMISTORBR_FAUL << 1;

if (Faul)

_THERMISTORBR_FAUL |= 1;

_THERMISTORBR_EXCN1 = _THERMISTORBR_EXCN1 << 1;

if (Exceeding)

_THERMISTORBR_EXCN1 |= 1;

}

#endif

//—————-Alarm forming function————————

#ifndef USEALARMFORM

#define USEALARMFORM

xdata int _ALARMFORM_COUNT;

void _ALARMFORM (unsigned char Q, unsigned char* Z, int Increment,

int Decrement, int Limit, unsigned char Reset)

{

if (!_Inited || Reset)

_ALARMFORM_COUNT = 0;

if (Increment < 1)

Increment = 1;

if (Decrement < 0)

Decrement = 0;

if (Limit < 1)

Limit = 1;

if (Q)

{

_ALARMFORM_COUNT += Increment;

if (_ALARMFORM_COUNT >= Limit)

{

*Z = !Reset;

_ALARMFORM_COUNT = Limit;

}

else if (Reset)

*Z = false;

}

else{

_ALARMFORM_COUNT -= Decrement;

if (_ALARMFORM_COUNT <= 0)

{

*Z = false;

_ALARMFORM_COUNT = 0;

}

}

}

#endif

#ifndef USERSTRIGGER

#define USERSTRIGGER

void _RSTRIGGER (unsigned char Set, unsigned char Reset, unsigned char* Y)

{

if (Set)

*Y = true;

if (Reset)

*Y = false;

}

#endif

//————————————————————————-

#ifndef USENOT

#define USENOT

#define _NOT (Q, Z) Z=!Q

#endif

//——————————————————————————————

#ifndef USEAND

#define USEAND

void _AND (unsigned char* X, unsigned char* Y)

{

#define xdata

int i;

unsigned char Result;

unsigned char* InpArr;

if (X ≠ NULL)

{

Result = true;

InpArr = (unsigned char*)&X[1];

for (i = 0; i < X[0]; i++)

Result = Result&&InpArr[i];

*Y = Result;

}

}

#endif

#ifndef USEPC485SERVICE

#define USEPC485SERVICE

#ifndef STDIOHINCLUDED

#define STDIOHINCLUDED

#include

#endif

#ifndef STDLIBHINCLUDED

#define STDLIBHINCLUDED

#include

#endif

#define PROTOCESSORFFP485_1AR" DA_AV02

#define PROTOCESSORFFP485_2AR" DA_BV02

#define PROTOCESSORFFP485_WFtrue

#define PROTOCESSORFFP485_RFfalse

#define PROTOCESSORFFP485_WERR-2

#define PROTOCESSORFFP485_LERR-1

xdata unsigned char TimeoutCounter;

xdata unsigned int CommandOK;

xdata unsigned int BlocksCount;

xdata unsigned char uart1obuf [256]_at_ 0xa00;

xdata unsigned char uart1ibuf [256]_at_ 0xb00;

unsigned char *uart1optr;

unsigned char *uart1iptr;

unsigned char uart1ocount;

unsigned char uart1icount;

//————————————————————————————————————-

void _PC485SERVICE (void)

{

if (SCON1&1)

{

*uart1iptr++=SBUF1;

uart1icount++;

SCON1&=0xfc;

}

if (SCON1&2)

{

SCON1&=0xfd;

if (uart1ocount)

{

SBUF1=*uart1optr++; uart1ocount—;

}

}

}

//—————————————————————————————————————-

unsigned char SendToProtocessorFFP485 (unsigned char OutBytes)

{

if (!TimeoutCounter){

memset (uart1ibuf, 0, 100);

uart1optr = &uart1obuf; uart1iptr = &uart1ibuf; uart1icount = 0;

uart1ocount = OutBytes;

SFRPAGE=1; SBUF1 = *uart1optr++; uart1ocount—; SFRPAGE=0;

}

TimeoutCounter++;

if (uart1icount > 0 && uart1ibuf[uart1icount — 1] == 0x0D)

return true;

}

//—————————————————————————————————————-

void FormQueryFrame (unsigned char Wr, unsigned char Destination, int Offset, const void *Data, unsigned char *Format, unsigned char *OutBytes)

{

uart1obuf[0] = ':'; uart1obuf[1] = Wr? 'W': 'R'; uart1obuf[2] = 'D';

uart1obuf[3] = '-'; uart1obuf[4] = 'N'; uart1obuf[5] = 'A';

uart1obuf[6] = ':';

*OutBytes = 7;

switch (Destination){

case 1: memcpy (&uart1obuf[7], PROTOCESSORFFP485_1AR, strlen (PROTOCESSORFFP485_1AR));

(*OutBytes) += strlen (PROTOCESSORFFP485_1AR);

break;

case 2: memcpy (&uart1obuf[7], PROTOCESSORFFP485_2AR, strlen (PROTOCESSORFFP485_2AR));

(*OutBytes) += strlen (PROTOCESSORFFP485_2AR);

break;

default: break;

}

uart1obuf[(*OutBytes)++] = ',';

uart1obuf[(*OutBytes)++] = 'O';

uart1obuf[(*OutBytes)++] = 'F';

uart1obuf[(*OutBytes)++] = ':';

(*OutBytes) += sprintf (&uart1obuf[*OutBytes], «%d», Offset);

if (Wr){

uart1obuf[(*OutBytes)++] = ',';

uart1obuf[(*OutBytes)++] = 'V';

uart1obuf[(*OutBytes)++] = 'A';

uart1obuf[(*OutBytes)++] = ':';

switch (Format[0]){

case 'D':(*OutBytes) += sprintf (&uart1obuf[*OutBytes], «%d», *((int *)Data));

break;

case 'U':(*OutBytes) += sprintf (&uart1obuf[*OutBytes], «%u», *((unsigned int *)Data));

break;

case 'F':(*OutBytes) += sprintf (&uart1obuf[*OutBytes], «%f», *((float *)Data));

break;

default: (*OutBytes) += sprintf (&uart1obuf[*OutBytes], «%d», (int)*((unsigned char *)Data));

break;

}

}

switch (Format[0]){

case 'D':uart1obuf[(*OutBytes)++] = ',';

uart1obuf[(*OutBytes)++] = 'F';

uart1obuf[(*OutBytes)++] = 'M';

uart1obuf[(*OutBytes)++] = 'T';

uart1obuf[(*OutBytes)++] = ':';

uart1obuf[(*OutBytes)++] = 'D';

break;

case 'U':uart1obuf[(*OutBytes)++] = ',';

uart1obuf[(*OutBytes)++] = 'F';

uart1obuf[(*OutBytes)++] = 'M';

uart1obuf[(*OutBytes)++] = 'T';

uart1obuf[(*OutBytes)++] = ':';

uart1obuf[(*OutBytes)++] = 'U';

break;

case 'F':uart1obuf[(*OutBytes)++] = ',';

uart1obuf[(*OutBytes)++] = 'F';

uart1obuf[(*OutBytes)++] = 'M';

uart1obuf[(*OutBytes)++] = 'T';

uart1obuf[(*OutBytes)++] = ':';

uart1obuf[(*OutBytes)++] = 'F';

break;

default: break;

}

uart1obuf[(*OutBytes)++] = 0x0D;

}

//——————————————————————————————-

/*void ResetOut (unsigned char *Format, void *Out)

{

switch (Format[0]){

case 'D':

case 'U':

*((int *)Out) = 0;

break;

case 'F':*((float *)Out) = 0;

break;

default: *((unsigned char *)Out) = 0;

break;

}

}*/

//——————————————————————————————-

void DecodeResponse (unsigned char Wr, int *Error, unsigned char *Format, void *Out)

{

if (!strncmp (uart1ibuf, «:ERR», 4)){

*Error = atoi (&uart1ibuf[4]);//sscanf (&uart1ibuf[4], «%d», Error);

//ResetOut (Format, Out);

return;

}

if (Wr){

if (strncmp (uart1ibuf, «:OK», 3) && !*Error){

*Error = PROTOCESSORFFP485_WERR;

}

return;

}

switch (Format[0]){

case 'D':*((int *)Out) = atoi (&uart1ibuf[1]);//sscanf (&uart1ibuf[1], «%d», ((int *)Out));

break;

case 'U':*((int *)Out) = atoi (&uart1ibuf[1]);//sscanf (&uart1ibuf[1], «%u», ((unsigned int *)Out));

break;

case 'F':*((float *)Out) = atof (&uart1ibuf[1]);//sscanf (&uart1ibuf[1], «%f», ((float *)Out));

break;

default: *((unsigned char *)Out) = atoi (&uart1ibuf[1]);//sscanf (&uart1ibuf[1], «%c», ((unsigned char *)Out));

break;

}

}

#endif

#ifndef USEPC485INIT

#define USEPC485INIT

void _PC485INIT (void)

{

BlocksCount = 1; TimeoutCounter=0; CommandOK=0; SFRPAGE=1; SCON1=0×10; SFRPAGE=0; CKCON=1; TH1=0×70; //CycleCnt=0;

}

#endif

#ifndef USEPC485WRITEANALOG

#define USEPC485WRITEANALOG

xdata unsigned int _PC485WRITEANALOG_BLOCKID;

void _PC485WRITEANALOG (int Offset, float Data, unsigned char Wrpr, int *Error)

{

#define xdata

unsigned char result = false;

unsigned char Outbytes;

if (!_Inited)

_PC485WRITEANALOG_BLOCKID = BlocksCount++;

if (Wrpr && CommandOK ≠ _PC485WRITEANALOG_BLOCKID)

return;

if (CommandOK == 0 || CommandOK == _PC485WRITEANALOG_BLOCKID){

CommandOK = _PC485WRITEANALOG_BLOCKID;

FormQueryFrame (PROTOCESSORFFP485_WF, 1, Offset, (void *)&Data, «F», &Outbytes);

result = SendToProtocessorFFP485 (Outbytes);

if (result){

*Error = 0;

DecodeResponse (PROTOCESSORFFP485_WF, Error, «F», NULL);

TimeoutCounter = 0;

CommandOK = 0;

}

if (TimeoutCounter > 10){

TimeoutCounter = 0;

CommandOK = 0;

*Error = PROTOCESSORFFP485_LERR;

}

}

}

#endif

#ifndef USEPC485READANALOG

#define USEPC485READANALOG

xdata unsigned int _PC485READANALOG_BLOCKID;

void _PC485READANALOG (int Offset, float *Out, int *Error)

{

#define xdata

unsigned char result = false;

unsigned char Outbytes;

if (!_Inited)

_PC485READANALOG_BLOCKID = BlocksCount++;

if (CommandOK == 0 || CommandOK == _PC485READANALOG_BLOCKID){

CommandOK = _PC485READANALOG_BLOCKID;

FormQueryFrame (PROTOCESSORFFP485_RF, 1, Offset, NULL, «F», &Outbytes);

result = SendToProtocessorFFP485 (Outbytes);

if (result){

*Error = 0;

DecodeResponse (PROTOCESSORFFP485_RF, Error, «F», (void *)Out);

TimeoutCounter = 0;

CommandOK = 0;

}

if (TimeoutCounter > 10){

TimeoutCounter = 0;

CommandOK = 0;

*Error = PROTOCESSORFFP485_LERR;

}

}

}

#endif

#ifndef USEEQUALI

#define USEEQUALI

#define _EQUALI (X1,X2,Z) Z=(X1==(X2))

#endif

//——————————————————————————————-

#ifndef USENOR

#define USENOR

void _NOR (unsigned char* X, unsigned char* Y)

{

#define xdata

int i;

unsigned char Result;

unsigned char* InpArr;

if (X ≠ NULL)

{

Result = false;

InpArr = (unsigned char*)&X[1];

for (i = 0; i < X[0]; i++)

Result = Result||InpArr[i];

*Y = !Result;

}

}

#endif

#ifndef USEPC485READBIT

#define USEPC485READBIT

xdata unsigned int _PC485READBIT_BLOCKID;

void _PC485READBIT (int Offset, unsigned char *Out, int *Error)

{

#define xdata

unsigned char result = false;

unsigned char Outbytes;

if (!_Inited)

_PC485READBIT_BLOCKID = BlocksCount++;

if (CommandOK == 0 || CommandOK == _PC485READBIT_BLOCKID){

CommandOK = _PC485READBIT_BLOCKID;

FormQueryFrame (PROTOCESSORFFP485_RF, 2, Offset, NULL, NULL, &Outbytes);

result = SendToProtocessorFFP485 (Outbytes);

if (result){

*Error = 0;

DecodeResponse (PROTOCESSORFFP485_RF, Error, NULL, (void *)Out);

TimeoutCounter = 0;

CommandOK = 0;

}

if (TimeoutCounter > 10){

TimeoutCounter = 0;

CommandOK = 0;

*Error = PROTOCESSORFFP485_LERR;

}

}

}

#endif

#ifndef USEPC485WRITEBIT

#define USEPC485WRITEBIT

xdata unsigned int _PC485WRITEBIT_BLOCKID;

void _PC485WRITEBIT (int Offset, unsigned char Data, unsigned char Wrpr, int *Error)

{

#define xdata

unsigned char result = false;

unsigned char Outbytes;

if (!_Inited)

_PC485WRITEBIT_BLOCKID = BlocksCount++;

if (Wrpr && CommandOK ≠ _PC485WRITEBIT_BLOCKID)

return;

if (CommandOK == 0 || CommandOK == _PC485WRITEBIT_BLOCKID){

CommandOK = _PC485WRITEBIT_BLOCKID;

FormQueryFrame (PROTOCESSORFFP485_WF, 2, Offset, (void *)&Data, NULL, &Outbytes);

result = SendToProtocessorFFP485 (Outbytes);

if (result){

*Error = 0;

DecodeResponse (PROTOCESSORFFP485_WF, Error, NULL, NULL);

TimeoutCounter = 0;

CommandOK = 0;

}

if (TimeoutCounter > 10){

TimeoutCounter = 0;

CommandOK = 0;

*Error = PROTOCESSORFFP485_LERR;

}

}

}

#endif

//—————————————————————————————-

#ifndef USEDECODER

#define USEDECODER

void _DECODER (int X, unsigned char* Z)

{

#define xdata

int i;

unsigned char* OutArr = &Z[1];

for (i = 0; i < Z[0]; i++)

OutArr[i] = ((X & (1 << i)) ≠ false);

}

#endif

#ifndef USESANTISHORT

#define USESANTISHORT

xdata float _ANTISHORT_TIME;

xdata unsigned char _ANTISHORT_ZN1;

void _ANTISHORT (unsigned char Q, float MinOn, float MinOff, unsigned char *Z)

{

if (!_Inited) {

_ANTISHORT_TIME = 0;

_ANTISHORT_ZN1 = false;

}

_ANTISHORT_TIME -= _CYCLE;

if (_ANTISHORT_TIME <= 0)

*Z = Q;

if (*Z && !_ANTISHORT_ZN1)

_ANTISHORT_TIME = MinOn;

if (!(*Z) && _ANTISHORT_ZN1)

_ANTISHORT_TIME = MinOff;

_ANTISHORT_ZN1 = *Z;

}

#endif

//——————————————————————————————

void _10ms_func ()

{

#define xdata

char _SAVE_INNUM, _SAVE_OUTNUM;

_10ms_Inited = true;

}

//————————————————————————————

void TENMS ()

{

_10ms_func ();

}

//————————————————————————-

#if defined (DEVICE_ME20) || defined (DEVICE_MC5) || defined (DEVICE_MC6) || defined (DEVICE_MR8M)

xdata unsigned char _int_1ms_count;

#endif

void _1ms_func ()

{

#define xdata

char _SAVE_INNUM, _SAVE_OUTNUM;

#if defined (DEVICE_ME20) || defined (DEVICE_MC5) || defined (DEVICE_MC1) || defined (DEVICE_MR8M)

_int_1ms_count++;

if (_int_1ms_count >= 10)

{

_int_1ms_count = 0;

quasi_10ms_func ();

}

#endif

}

//————————————————————————————-

void ONEMS ()

{

_1ms_func ();

}

//———————————————————————————

void UART1_func ()

{

_PC485SERVICE ();

SCON1 &= 0xfc;

}

//————————————————————————————

void UART1()

{

UART1_func ();

}

//—————-Initialization unit————————

#ifndef STRINGHINCLUDED

#define STRINGHINCLUDED

#include

#endif

void INIT_func ()

{

#define xdata

int _counter;

#ifdef _TimesCount

struct Timers xdata *TimersPtr;

#endif

/*#ifdef BOOLCOUNTO

for (_counter = 0; _counter < BOOLCOUNTO; _counter++)

BOOLARRO[_counter] = 0;

#endif

#ifdef BOOLCOUNTN

for (_counter = 0; _counter < BOOLCOUNTN; _counter++)

BOOLARRN[_counter] = 0;

#endif

#ifdef INTCOUNTO

for (_counter = 0; _counter < INTCOUNTO; _counter++)

INTARRO[_counter] = 0;

#endif

#ifdef INTCOUNTN

for (_counter = 0; _counter < INTCOUNTN; _counter++)

INTARRN[_counter] = 0;

#endif

#ifdef FLOATCOUNTO

for (_counter = 0; _counter < FLOATCOUNTO; _counter++)

FLOATARRO[_counter] = 0;

#endif

#ifdef FLOATCOUNTN

for (_counter = 0; _counter < FLOATCOUNTN; _counter++)

FLOATARRN[_counter] = 0;

#endif

#ifdef TIMECOUNTO

for (_counter = 0; _counter < TIMECOUNTO; _counter++)

TIMEARRO[_counter] = 0;

#endif

#ifdef TIMECOUNTN

for (_counter = 0; _counter < TIMECOUNTN; _counter++)

TIMEARRN[_counter] = 0;

#endif

#ifdef DATECOUNTO

for (_counter = 0; _counter < DATECOUNTO; _counter++)

DATEARRO[_counter] = 0;

#endif

#ifdef DATECOUNTN

for (_counter = 0; _counter < DATECOUNTN; _counter++)

DATEARRN[_counter] = 0;

#endif

#ifdef BOOLCOUNTAO

for (_counter = 0; _counter < BOOLCOUNTAO; _counter++)

BOOLARRAO[_counter] = 0;

#endif

#ifdef BOOLCOUNTAN

for (_counter = 0; _counter < BOOLCOUNTAN; _counter++)

BOOLARRAN[_counter] = 0;

#endif

#ifdef INTCOUNTAO

for (_counter = 0; _counter < INTCOUNTAO; _counter++)

INTARRAO[_counter] = 0;

#endif

#ifdef INTCOUNTAN

for (_counter = 0; _counter < INTCOUNTAN; _counter++)

INTARRAN[_counter] = 0;

#endif

#ifdef FLOATCOUNTAO

for (_counter = 0; _counter < FLOATCOUNTAO; _counter++)

FLOATARRAO[_counter] = 0;

#endif

#ifdef FLOATCOUNTAN

for (_counter = 0; _counter < FLOATCOUNTAN; _counter++)

FLOATARRAN[_counter] = 0;

#endif

#ifdef DATECOUNTAO

for (_counter = 0; _counter < DATECOUNTAO; _counter++)

DATEARRAO[_counter] = 0;

#endif

#ifdef DATECOUNTAN

for (_counter = 0; _counter < DATECOUNTAN; _counter++)

DATEARRAN[_counter] = 0;

#endif

#ifdef TIMECOUNTAO

for (_counter = 0; _counter < TIMECOUNTAO; _counter++)

TIMEARRAO[_counter] = 0;

#endif

#ifdef TIMECOUNTAN

for (_counter = 0; _counter < TIMECOUNTAN; _counter++)

TIMEARRAN[_counter] = 0;

#endif*/

memset (TempZone, 0, TempZoneSize);

#ifdef _TimesCount

TimersPtr = &begram + AddrTimerStruct;

for (_counter = 0; _counter < _TimesCount; _counter++)

{

TimersPtr->Status = 0;

TimersPtr->Delay = 0;

TimersPtr++;

}

#endif

#ifdef _DACCount

for (_counter = 0; _counter < _DACCount; _counter++)

AO (_counter)=0;

#endif

_INNUM = -1;

_OUTNUM = -1;

_PC485INIT ();

#if defined (DEVICE_MC8)

#ifdef IS_SLAVE

SLAVE = IS_SLAVE;

#endif

#endif

_Inited = false;

_10ms_Inited = false;

}

//——————————————————————————

void INIT ()

{

INIT_func ();

}

//—————Getting Digital Inputs——————————

void _GETDIS ()

{

DI[0] = Dinput0;

DI[1] = Dinput1;

DI[2] = Dinput2;

DI[3] = Dinput3;

}

//—————————————————————————————————-

typedef void (*MagicFuncTyp)(void);

#include

xdata int CheckAllTheFloats_i;

xdata unsigned char CheckAllTheFloats_ch_res;

xdata MagicFuncTyp CheckAllTheFloats_MagicFunc;

xdata unsigned char CheckAllTheFloats_Counter;

xdata unsigned char CheckAllTheFloats_OK;

void CheckAllTheFloats ()

{

if (!_Inited)

CheckAllTheFloats_Counter = 0;

CheckAllTheFloats_OK = true;

#ifdef FLOATCOUNTO

for (CheckAllTheFloats_i=0; CheckAllTheFloats_i

{

CheckAllTheFloats_ch_res = _chkfloat_(FLOATARRO[CheckAllTheFloats_i]);

if (!(CheckAllTheFloats_ch_res==0 || CheckAllTheFloats_ch_res==1))

{

if (CheckAllTheFloats_Counter > 100)

{

CheckAllTheFloats_MagicFunc = 0;

CheckAllTheFloats_MagicFunc ();

}

else{

FLOATARRO[CheckAllTheFloats_i] = 0;

if (CheckAllTheFloats_OK)

CheckAllTheFloats_Counter++;

}

CheckAllTheFloats_OK = false;

}

}

if (CheckAllTheFloats_OK)

CheckAllTheFloats_Counter = 0;

#endif

#ifdef FLOATCOUNTL

for (CheckAllTheFloats_i=0; CheckAllTheFloats_i

{

CheckAllTheFloats_ch_res = _chkfloat_(FLOATARRL[CheckAllTheFloats_i]);

if (!(CheckAllTheFloats_ch_res==0 || CheckAllTheFloats_ch_res==1))

{

if (CheckAllTheFloats_Counter > 100)

{

CheckAllTheFloats_MagicFunc = 0;

CheckAllTheFloats_MagicFunc ();

}

else{

FLOATARRL[CheckAllTheFloats_i] = 0;

if (CheckAllTheFloats_OK)

CheckAllTheFloats_Counter++;

}

CheckAllTheFloats_OK = false;

}

}

if (CheckAllTheFloats_OK)

CheckAllTheFloats_Counter = 0;

#endif

#ifdef FLOATCOUNTN

for (CheckAllTheFloats_i=0;CheckAllTheFloats_i

{

CheckAllTheFloats_ch_res = _chkfloat_(FLOATARRN[CheckAllTheFloats_i]);

if (!(CheckAllTheFloats_ch_res==0 || CheckAllTheFloats_ch_res==1))

FLOATARRN[CheckAllTheFloats_i] = 0;

}

#endif

#ifdef FCELLCOUNT

for (CheckAllTheFloats_i=0;CheckAllTheFloats_i

{

CheckAllTheFloats_ch_res = _chkfloat_(FLOATCELLS[CheckAllTheFloats_i]);

if (!(CheckAllTheFloats_ch_res==0 || CheckAllTheFloats_ch_res==1))

FLOATCELLS[CheckAllTheFloats_i] = 0;

}

#endif

}

//—————————————————————————————————-

xdata unsigned int RestoreStatics_Counter;

#define _StaticsWithZF (_ALLTHESTATICS + _ZFSavedBytes)

xdata char _RAMSavedPtr[_StaticsWithZF] _at_ _RAMSavedLoc;

code char _ROMSavedPtr[_StaticsWithZF] _at_ _ROMSavedLoc;

void RestoreStatics ()

{

xdata int i;

xdata unsigned char OK;

#ifdef DEVICE_MC8125

PSBANK=0×21;

#endif

if (!_Inited)

RestoreStatics_Counter = 0;

OK = true;

for (i = 0; i < _StaticsWithZF; i++)

{

if (_RAMSavedPtr[i] ≠ _ROMSavedPtr[i])

{

RestoreStatics_Counter++;

OK = false;

break;

}

}

if (OK)

RestoreStatics_Counter = 0;

if (RestoreStatics_Counter > (6000/_CYCLEINT))

{

for (i = 0; i < _StaticsWithZF; i++)

_RAMSavedPtr[i] = _ROMSavedPtr[i];

RestoreStatics_Counter = 0;

}

#ifdef DEVICE_MC8125

PSBANK=0×11;

#endif

}

//—————————————————————————————————-

#if _ALLTHERETAINS>0

xdata char _RAMRetainPtr[_ALLTHERETAINS] _at_ _RAMSavedLoc;

code char _ROMRetainPtr[_ALLTHERETAINS] _at_ _ROMSavedLoc;

void SaveRetains ()

{

#define xdata

int i;

#ifdef DEVICE_MC8125

PSBANK=0×21;

#endif

for (i = 0; i < _ALLTHERETAINS; i++)

{

if (_RAMRetainPtr[i+_ALLTHESTATICS] ≠ _ROMRetainPtr[i+_ALLTHESTATICS])

{

_Save_Command = 0×5555;

break;

}

}

#ifdef DEVICE_MC8125

PSBANK=0×11;

#endif

}

#endif

//—————————————————————————————————-

void main_func ()

{

#define xdata

char _SAVE_INNUM, _SAVE_OUTNUM;

static unsigned char CylclesPassed;

if (CylclesPassed < 3)

{

CylclesPassed++;

return;

}

#if _ALLTHESTATICS>0

RestoreStatics ();

#endif

#if _ALLTHERETAINS>0

SaveRetains ();

#endif

CheckAllTheFloats ();

_GETDIS ();

#ifdef DEVICE_MC5

_ADCService ();

#endif

#ifdef DEVICE_MC1

_ADCService ();

#endif

#ifdef DEVICE_MC6

_ADCService ();

#endif

_CONDITIONAL (-1,1,FALSE, FLOATARRO[9]);

_BUTTON_PREVIOUS = X53700776_PREVIOUS;

_BUTTON (FALSE,&BOOLARRO[3]);

X53700776_PREVIOUS = _BUTTON_PREVIOUS;

_BOOLVAR (FALSE, BOOLARRO[4]);

_VALUEVAR (0,FLOATARRO[16]);

_VALUEVAR (0,FLOATARRO[17]);

_VALUEVAR (0,FLOATARRO[18]);

_VALUEVAR (0,FLOATARRO[19]);

_THERMISTORBR_FAUL = X34078064_FAUL;

_THERMISTORBR_INPUTN1 = X34078064_INPUTN1;

_THERMISTORBR_STORAGE = X34078064_STORAGE;

_THERMISTORBR_FLAG = X34078064_FLAG;

_THERMISTORBR_EXCN1 = X34078064_EXCN1;

_SAVE_INNUM = _INNUM;

_INNUM = 0;

_THERMISTORBR (AI (0),&FFLOATBLANK,&FFLOATBLANK,&BBOOLBLANK, 0);

X34078064_FAUL = _THERMISTORBR_FAUL;

X34078064_INPUTN1 = _THERMISTORBR_INPUTN1;

X34078064_STORAGE = _THERMISTORBR_STORAGE;

X34078064_FLAG = _THERMISTORBR_FLAG;

X34078064_EXCN1 = _THERMISTORBR_EXCN1;

_INNUM = _SAVE_INNUM;

_THERMISTORBR_FAUL = X25528264_FAUL;

_THERMISTORBR_INPUTN1 = X25528264_INPUTN1;

_THERMISTORBR_STORAGE = X25528264_STORAGE;

_THERMISTORBR_FLAG = X25528264_FLAG;

_THERMISTORBR_EXCN1 = X25528264_EXCN1;

_SAVE_INNUM = _INNUM;

_INNUM = 1;

_THERMISTORBR (AI (1),&FLOATARRO[20],&FFLOATBLANK,&BOOLARRO[5], 0);

X25528264_FAUL = _THERMISTORBR_FAUL;

X25528264_INPUTN1 = _THERMISTORBR_INPUTN1;

X25528264_STORAGE = _THERMISTORBR_STORAGE;

X25528264_FLAG = _THERMISTORBR_FLAG;

X25528264_EXCN1 = _THERMISTORBR_EXCN1;

_INNUM = _SAVE_INNUM;

_BOOLVAR (BOOLARRO[3], BOOLARRO[13]);

_PC485WRITEANALOG_BLOCKID = X53412616_BLOCKID;

_PC485WRITEANALOG (0,FLOATARRO[19], FALSE,&INTARRO[0]);

X53412616_BLOCKID = _PC485WRITEANALOG_BLOCKID;

_PC485READANALOG_BLOCKID = X53414548_BLOCKID;

_PC485READANALOG (0,&FFLOATBLANK,&INTARRO[1]);

X53414548_BLOCKID = _PC485READANALOG_BLOCKID;

_PC485WRITEANALOG_BLOCKID = X53415124_BLOCKID;

_PC485WRITEANALOG (0,FLOATARRO[18], FALSE,&INTARRO[2]);

X53415124_BLOCKID = _PC485WRITEANALOG_BLOCKID;

_EQUALI (INTARRO[0], 0, BOOLARRO[19]);

_EQUALI (INTARRO[2], 0, BOOLARRO[21]);

_PC485READBIT_BLOCKID = X48414408_BLOCKID;

_PC485READBIT (0,&BBOOLBLANK,&INTARRO[3]);

X48414408_BLOCKID = _PC485READBIT_BLOCKID;

_PC485READBIT_BLOCKID = X53741192_BLOCKID;

_PC485READBIT (0,&BBOOLBLANK,&INTARRO[4]);

X53741192_BLOCKID = _PC485READBIT_BLOCKID;

_PC485READBIT_BLOCKID = X53460520_BLOCKID;

_PC485READBIT (0,&BBOOLBLANK,&INTARRO[5]);

X53460520_BLOCKID = _PC485READBIT_BLOCKID;

_PC485READANALOG_BLOCKID = X48422568_BLOCKID;

_PC485READANALOG (0,&FFLOATBLANK,&INTARRO[6]);

X48422568_BLOCKID = _PC485READANALOG_BLOCKID;

_PC485WRITEBIT_BLOCKID = X48436796_BLOCKID;

_PC485WRITEBIT (0,FALSE, FALSE,&INTARRO[7]);

X48436796_BLOCKID = _PC485WRITEBIT_BLOCKID;

_PC485WRITEBIT_BLOCKID = X48438080_BLOCKID;

_PC485WRITEBIT (0,FALSE, FALSE,&INTARRO[8]);

X48438080_BLOCKID = _PC485WRITEBIT_BLOCKID;

_EQUALI (INTARRO[8], 0, BOOLARRO[23]);

_EQUALI (INTARRO[3], 0, BOOLARRO[26]);

_EQUALI (INTARRO[4], 0, BOOLARRO[27]);

_PC485READANALOG_BLOCKID = X48503916_BLOCKID;

_PC485READANALOG (0,&FFLOATBLANK,&INTARRO[10]);

X48503916_BLOCKID = _PC485READANALOG_BLOCKID;

_EQUALI (INTARRO[5], 0, BOOLARRO[28]);

_EQUALI (INTARRO[1], 0, BOOLARRO[29]);

_EQUALI (INTARRO[6], 0, BOOLARRO[30]);

_PC485WRITEANALOG_BLOCKID = X48585676_BLOCKID;

_PC485WRITEANALOG (0,0,FALSE,&IINTBLANK);

X48585676_BLOCKID = _PC485WRITEANALOG_BLOCKID;

_PC485WRITEBIT_BLOCKID = X48577916_BLOCKID;

_PC485WRITEBIT (0,FALSE, FALSE,&IINTBLANK);

X48577916_BLOCKID = _PC485WRITEBIT_BLOCKID;

_PC485READANALOG_BLOCKID = X48395640_BLOCKID;

_PC485READANALOG (0,&FFLOATBLANK,&IINTBLANK);

X48395640_BLOCKID = _PC485READANALOG_BLOCKID;

_PC485READBIT_BLOCKID = X48450212_BLOCKID;

_PC485READBIT (0,&BBOOLBLANK,&IINTBLANK);

X48450212_BLOCKID = _PC485READBIT_BLOCKID;

_NOT (BOOLARRO[4], BOOLARRO[31]);

_ARR0[0] = 1;

_DECODER (0,_ARR0);

BBOOLPTR = (unsigned char*)&_ARR0[1];

BOOLARRAO[0] = *BBOOLPTR;

_ALARMFORM_COUNT = X53604948_COUNT;

_SAVE_INNUM = _INNUM;

_INNUM = 1;

_ALARMFORM (DI (1),&BOOLARRO[32], 0,0,0,BOOLARRO[3]);

X53604948_COUNT = _ALARMFORM_COUNT;

_INNUM = _SAVE_INNUM;

_ALARMFORM_COUNT = X53516744_COUNT;

_SAVE_INNUM = _INNUM;

_INNUM = 0;

_ALARMFORM (DI (0),&BOOLARRO[33], 0,0,0,BOOLARRO[3]);

X53516744_COUNT = _ALARMFORM_COUNT;

_INNUM = _SAVE_INNUM;

_ALARMFORM_COUNT = X53568164_COUNT;

_SAVE_INNUM = _INNUM;

_INNUM = 2;

_ALARMFORM (DI (2),&BOOLARRO[34], 0,0,0,BOOLARRO[3]);

X53568164_COUNT = _ALARMFORM_COUNT;

_INNUM = _SAVE_INNUM;

_ANTISHORT_TIME = X53536616_TIME;

_ANTISHORT_ZN1 = X53536616_ZN1;

_SAVE_INNUM = _INNUM;

_INNUM = 3;

_ANTISHORT (DI (3), 0,0,&BOOLARRO[35]);

X53536616_TIME = _ANTISHORT_TIME;

X53536616_ZN1 = _ANTISHORT_ZN1;

_INNUM = _SAVE_INNUM;

_ARR0[0] = 1;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

_ARR1[0] = 1;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

_PIECEWISE (FLOATARRO[19],&FLOATARRO[2],_ARR0,_ARR1);

_VALUEVAR (FLOATARRO[2], FLOATARRO[5]);

_VALUEVAR (FLOATARRO[20], FLOATARRO[6]);

_ARR0[0] = 2;

BBOOLPTR = (unsigned char*)&_ARR0[1];

*BBOOLPTR = BOOLARRO[32];

BBOOLPTR = (unsigned char*)&_ARR0[2];

*BBOOLPTR = BOOLARRO[34];

_OR (_ARR0,&BOOLARRO[0]);

_CONDITIONAL (0,0,BOOLARRO[33], FLOATARRO[14]);

_ALARMFORM_COUNT = X53634564_COUNT;

_ALARMFORM (BOOLARRO[5],&BOOLARRO[6], 0,0,0,BOOLARRO[13]);

X53634564_COUNT = _ALARMFORM_COUNT;

_ALARMFORM_COUNT = X53610812_COUNT;

_ALARMFORM (BOOLARRAO[0],&BOOLARRO[7], 0,0,0,BOOLARRO[13]);

X53610812_COUNT = _ALARMFORM_COUNT;

_RSTRIGGER (BOOLARRO[6], BOOLARRO[13],&BOOLARRO[8]);

_RSTRIGGER (BOOLARRO[7], BOOLARRO[13],&BOOLARRO[9]);

_ALARMFORM_COUNT = X53797644_COUNT;

_ALARMFORM (BOOLARRO[32],&BOOLARRO[12], 0,0,0,BOOLARRO[13]);

X53797644_COUNT = _ALARMFORM_COUNT;

_EQUALI (INTARRO[7], 0, BOOLARRO[22]);

_PC485WRITEBIT_BLOCKID = X48453704_BLOCKID;

_PC485WRITEBIT (0,BOOLARRO[31], FALSE,&INTARRO[9]);

X48453704_BLOCKID = _PC485WRITEBIT_BLOCKID;

_EQUALI (INTARRO[9], 0, BOOLARRO[24]);

_EQUALI (INTARRO[10], 0, BOOLARRO[25]);

_FILTER (FLOATARRO[6],&FLOATARRO[4], 2);

_RSTRIGGER (BOOLARRO[12], BOOLARRO[13],&BOOLARRO[10]);

_ARR0[0] = 11;

BBOOLPTR = (unsigned char*)&_ARR0[1];

*BBOOLPTR = BOOLARRO[19];

BBOOLPTR = (unsigned char*)&_ARR0[2];

*BBOOLPTR = BOOLARRO[21];

BBOOLPTR = (unsigned char*)&_ARR0[3];

*BBOOLPTR = BOOLARRO[22];

BBOOLPTR = (unsigned char*)&_ARR0[4];

*BBOOLPTR = BOOLARRO[23];

BBOOLPTR = (unsigned char*)&_ARR0[5];

*BBOOLPTR = BOOLARRO[24];

BBOOLPTR = (unsigned char*)&_ARR0[6];

*BBOOLPTR = BOOLARRO[25];

BBOOLPTR = (unsigned char*)&_ARR0[7];

*BBOOLPTR = BOOLARRO[26];

BBOOLPTR = (unsigned char*)&_ARR0[8];

*BBOOLPTR = BOOLARRO[27];

BBOOLPTR = (unsigned char*)&_ARR0[9];

*BBOOLPTR = BOOLARRO[28];

BBOOLPTR = (unsigned char*)&_ARR0[10];

*BBOOLPTR = BOOLARRO[29];

BBOOLPTR = (unsigned char*)&_ARR0[11];

*BBOOLPTR = BOOLARRO[30];

_NOR (_ARR0,&BOOLARRO[20]);

_UNBALANSE (FLOATARRO[5], FLOATARRO[4], FLOATARRO[3]);

_ARR0[0] = 2;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = FLOATARRO[3];

FFLOATPTR = (float*)&_ARR0[5];

*FFLOATPTR = FLOATARRO[9];

_MULT (_ARR0,&FLOATARRO[8]);

_ARR0[0] = 1;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

_ARR1[0] = 1;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

_PIECEWISE (FLOATARRO[3],&FLOATARRO[10],_ARR0,_ARR1);

_SAVE_OUTNUM = _OUTNUM;

_OUTNUM = 0;

_ARR0[0] = 2;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

FFLOATPTR = (float*)&_ARR0[5];

*FFLOATPTR = 100;

_ARR1[0] = 2;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

FFLOATPTR = (float*)&_ARR1[5];

*FFLOATPTR = FLOATARRO[10];

_PIECEWISE (FLOATARRO[17],&FLOATARRO[13],_ARR0,_ARR1);

_OUTNUM = _SAVE_OUTNUM;

AO (0) = FLOATARRO[13];

_ALARMFORM_COUNT = X53831064_COUNT;

_ALARMFORM (BOOLARRO[20],&BOOLARRO[15], 0,0,0,BOOLARRO[13]);

X53831064_COUNT = _ALARMFORM_COUNT;

_ARR0[0] = 2;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

FFLOATPTR = (float*)&_ARR0[5];

*FFLOATPTR = 100;

_ARR1[0] = 2;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = FLOATARRO[14];

FFLOATPTR = (float*)&_ARR1[5];

*FFLOATPTR = FLOATARRO[10];

_PIECEWISE (FLOATARRO[18],&FLOATARRO[0],_ARR0,_ARR1);

_ARR0[0] = 2;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

FFLOATPTR = (float*)&_ARR0[5];

*FFLOATPTR = 100;

_ARR1[0] = 2;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

FFLOATPTR = (float*)&_ARR1[5];

*FFLOATPTR = 100;

_PIECEWISE (FLOATARRO[0],&FLOATARRO[1],_ARR0,_ARR1);

_PID2AOOVR_YIN1 = X53376856_YIN1;

_PID2AOOVR_XN1 = X53376856_XN1;

_PID2AOOVR_YD1N1 = X53376856_YD1N1;

_PID2AOOVR_YAN1 = X53376856_YAN1;

_PID2AOOVR_YULM = X53376856_YULM;

_PID2AOOVR (FLOATARRO[8],&FLOATARRO[7],&FFLOATBLANK, FALSE, 0.5,2.5,300,0,0,100,BOOLARRO[0], 0);

X53376856_YIN1 = _PID2AOOVR_YIN1;

X53376856_XN1 = _PID2AOOVR_XN1;

X53376856_YD1N1 = _PID2AOOVR_YD1N1;

X53376856_YAN1 = _PID2AOOVR_YAN1;

X53376856_YULM = _PID2AOOVR_YULM;

_ARR0[0] = 1;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

_ARR1[0] = 1;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

_PIECEWISE (FLOATARRO[7],&FLOATARRO[11],_ARR0,_ARR1);

_CONDITIONAL (FLOATARRO[11], 0, BOOLARRO[4], FLOATARRO[12]);

_ARR0[0] = 1;

FFLOATPTR = (float*)&_ARR0[1];

*FFLOATPTR = 0;

_ARR1[0] = 1;

FFLOATPTR = (float*)&_ARR1[1];

*FFLOATPTR = 0;

_PIECEWISE (FLOATARRO[7],&FFLOATBLANK,_ARR0,_ARR1);

_RSTRIGGER (BOOLARRO[15], BOOLARRO[13],&BOOLARRO[11]);

_ARR0[0] = 4;

BBOOLPTR = (unsigned char*)&_ARR0[1];

*BBOOLPTR = BOOLARRO[8];

BBOOLPTR = (unsigned char*)&_ARR0[2];

*BBOOLPTR = BOOLARRO[9];

BBOOLPTR = (unsigned char*)&_ARR0[3];

*BBOOLPTR = BOOLARRO[10];

BBOOLPTR = (unsigned char*)&_ARR0[4];

*BBOOLPTR = BOOLARRO[11];

_OR (_ARR0,&BOOLARRO[14]);

_ARR0[0] = 2;

BBOOLPTR = (unsigned char*)&_ARR0[1];

*BBOOLPTR = BOOLARRO[14];

BBOOLPTR = (unsigned char*)&_ARR0[2];

*BBOOLPTR = FALSE;

_SAVE_OUTNUM = _OUTNUM;

_OUTNUM = 1;

_OR (_ARR0,&BOOLARRO[16]);

_OUTNUM = _SAVE_OUTNUM;

DO (1) = BOOLARRO[16];

_NOT (BOOLARRO[14], BOOLARRO[17]);

_ARR0[0] = 2;

BBOOLPTR = (unsigned char*)&_ARR0[1];

*BBOOLPTR = BOOLARRO[35];

BBOOLPTR = (unsigned char*)&_ARR0[2];

*BBOOLPTR = BOOLARRO[17];

_AND (_ARR0,&BOOLARRO[18]);

_PWM2_TIME = X53327236_TIME;

_PWM2_STATE = X53327236_STATE;

_PWM2(FLOATARRO[16], FLOATARRO[12],&PWM2ARRO[0]);

X53327236_TIME = _PWM2_TIME;

X53327236_STATE = _PWM2_STATE;

_BOOLVAR (BOOLARRO[18], BOOLARRO[1]);

_SAVE_OUTNUM = _OUTNUM;

_OUTNUM = 0;

_CONDB (PWM2ARRO[0], FALSE, BOOLARRO[1], BOOLARRO[2]);

_OUTNUM = _SAVE_OUTNUM;

DO (0) = BOOLARRO[2];

_SAVE_OUTNUM = _OUTNUM;

_OUTNUM = 1;

_CONDITIONAL (FLOATARRO[1], 0, BOOLARRO[1], FLOATARRO[15]);

_OUTNUM = _SAVE_OUTNUM;

AO (1) = FLOATARRO[15];

#if defined (DEVICE_MC8) || defined (DEVICE_MC8125) || defined (DEVICE_MC5) || defined (DEVICE_MC1) || defined (DEVICE_MC6) || defined (DEVICE_MR4)

_DACService ();

#endif

_Inited = true;

}

//——————————————————————————————-

main ()

{

main_func ();

}

__global xdata char __RAMCheckByte;

#undef __global

#undef __comment

Map_Descriptor_Name.

Data_Array_Name.

Data_Array_Offset.

Lon_Function.

Function.

Node_Name.

SNVT_Index.

SNVT_Type.

nviOnOff01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviHeatCool01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_hvac_mode.

nviSetpoint01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_temp_p.

nviSpaceTemp01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_temp_p.

nviFanSpeed01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviFiltersign01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviFailure01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviErrStatus01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_count.

nviThermo01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviWattmeter01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_elec_kwh_l.

nviRejOnOff01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviRejMode01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviRejSetpoint01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviHvacExist01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nviThermoOff01.

DA_AV02.

NVPIIMC.

RDBC.

cond1.

SNVT_switch.

nvoOnOff01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoHeatCool01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_hvac_mode.

nvoSetpoint01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_temp_p.

nvoFanSpeed01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoFSReset01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoRejOnOff01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoRejMode01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoRejSetpoint01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nvoThermoOff01.

DA_AV02.

NVUOIMC.

WRBC.

cond1.

SNVT_switch.

nviOnOff02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviHeatCool02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_hvac_mode.

nviSetpoint02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_temp_p.

nviSpaceTemp02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_temp_p.

nviFanSpeed02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviFiltersign02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviFailure02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviErrStatus02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_count.

nviThermo02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviWattmeter02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_elec_kwh_l.

nviRejOnOff02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviRejMode02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviRejSetpoint02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviHvacExist02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nviThermoOff02.

DA_AV02.

NVPIIMC.

RDBC.

cond2.

SNVT_switch.

nvoOnOff02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoHeatCool02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_hvac_mode.

nvoSetpoint02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_temp_p.

nvoFanSpeed02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoFSReset02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoRejOnOff02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoRejMode02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoRejSetpoint02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nvoThermoOff02.

DA_AV02.

NVUOIMC.

WRBC.

cond2.

SNVT_switch.

nviOnOff03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviHeatCool03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_hvac_mode.

nviSetpoint03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_temp_p.

nviSpaceTemp03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_temp_p.

nviFanSpeed03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviFiltersign03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviFailure03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviErrStatus03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_count.

nviThermo03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviWattmeter03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_elec_kwh_l.

nviRejOnOff03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviRejMode03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviRejSetpoint03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviHvacExist03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nviThermoOff03.

DA_AV02.

NVPIIMC.

RDBC.

cond3.

SNVT_switch.

nvoOnOff03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoHeatCool03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_hvac_mode.

nvoSetpoint03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_temp_p.

nvoFanSpeed03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoFSReset03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoRejOnOff03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoRejMode03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoRejSetpoint03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nvoThermoOff03.

DA_AV02.

NVUOIMC.

WRBC.

cond3.

SNVT_switch.

nviOnOff04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviHeatCool04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_hvac_mode.

nviSetpoint04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_temp_p.

nviSpaceTemp04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_temp_p.

nviFanSpeed04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviFiltersign04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviFailure04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviErrStatus04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_count.

nviThermo04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviWattmeter04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_elec_kwh_l.

nviRejOnOff04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviRejMode04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviRejSetpoint04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviHvacExist04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nviThermoOff04.

DA_AV02.

NVPIIMC.

RDBC.

cond4.

SNVT_switch.

nvoOnOff04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_switch.

nvoHeatCool04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_hvac_mode.

nvoSetpoint04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_temp_p.

nvoFanSpeed04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_switch.

nvoFSReset04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_switch.

nvoRejOnOff04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_switch.

nvoRejMode04.

DA_AV02.

NVUOIMC.

WRBC.

cond4.

SNVT_switch.

Показать весь текст
Заполнить форму текущей работой