Выбор наиболее эффективной технологии передачи данных между уровнем устройств и уровнем диспетчеризации
Описания инженерных систем: вентиляция, холодоснабжение и пр. Уровни протокола LonTalk и основные функции. Интерфейсный Neuron-кристалл. Конфигурирование платы и шлюза. Функциональный алгоритм Kongraf. Оценка напряженности процесса эксплуатации комплекса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 17.10.2017 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
_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 = 0x5555;
}
_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) & 0x000000ff ) - 0x7e;
bitStruct.bits &= 0x807fffff;
bitStruct.bits |= 0x3f000000;
result->mantissa = bitStruct.value;
}
//------------------------------------------------------
#endif
//------------------------------------------------------
#ifndef USELN
#define USELN
void _LN (float x, float *y)
{
const float code a0 = -2.1724098;
const float code a1 = 4.1744959;
const float code a2 = -2.8551644;
const float code a3 = 8.5375156E-1;
const float code LN2 = 0.6931572;
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.129241E-3
#define ThermB2 2.341077E-4
#define ThermC2 8.775468E-8
#define ThermA3 1.028444E-3
#define ThermB3 2.392435E-4
#define ThermC3 1.562216E-7
#define xdata
float b;
xdata float RT;
float RealTemp;
float ThermA, ThermB, ThermC;
#ifdef DEVICE_MC8_125
PSBANK=0x21;
#endif
if (INPUT)
RT = Coefs[_INNUM][T10k]/(Ureference/INPUT - 1);
else
RT = 0;
#ifdef DEVICE_MC8_125
PSBANK=0x11;
#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_INPUTN_1;
xdata float _THERMISTORBR_STORAGE;
xdata unsigned char _THERMISTORBR_FLAG;
xdata unsigned char _THERMISTORBR_EXCN_1;
void _THERMISTORBR(float INPUT, float* CEL, float* FAR, unsigned char *FAULT, int TYPE)
{
#define xdata
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_INPUTN_1 = INPUT;
_THERMISTORBR_STORAGE = 0;
_THERMISTORBR_FLAG = false;
_THERMISTORBR_EXCN_1 = false;
}
Faul = (INPUT < ShortCircuitLimit) || (INPUT > BreakLimit);
Speed = (INPUT - _THERMISTORBR_INPUTN_1) / _CYCLE;
if (Speed < 0)
Speed = -1 * Speed;
Exceeding = (Speed > _THERMISTORBR_MAX_SPEED);
if (((Faul && !(_THERMISTORBR_FAUL & 0x1f)) && !Exceeding && !(_THERMISTORBR_EXCN_1 & 0x3)) ||
(Exceeding && !_THERMISTORBR_FLAG && !(_THERMISTORBR_FAUL & 0x1f))) {
if (Exceeding)
_THERMISTORBR_FLAG = true;
_THERMISTORBR_STORAGE = _THERMISTORBR_INPUTN_1;
}
if (!Exceeding || Faul)
_THERMISTORBR_FLAG = false;
if (_THERMISTORBR_FLAG || Faul || (_THERMISTORBR_EXCN_1 & 0x3) || (_THERMISTORBR_FAUL & 0x3))
Temp = _THERMISTORBR_STORAGE;
else
Temp = INPUT;
_THERMISTOR (Temp, CEL, FAR, TYPE);
*FAULT = Faul && (_THERMISTORBR_FAUL & 1);
_THERMISTORBR_INPUTN_1 = INPUT;
_THERMISTORBR_FAUL = _THERMISTORBR_FAUL << 1;
if (Faul)
_THERMISTORBR_FAUL |= 1;
_THERMISTORBR_EXCN_1 = _THERMISTORBR_EXCN_1 << 1;
if (Exceeding)
_THERMISTORBR_EXCN_1 |= 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 <stdio.h>
#endif
#ifndef STDLIBHINCLUDED
#define STDLIBHINCLUDED
#include <stdlib.h>
#endif
#define PROTOCESSORFFP485_1AR"DA_AV_02"
#define PROTOCESSORFFP485_2AR"DA_BV_02"
#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=0x10; SFRPAGE=0; CKCON=1; TH1=0x70; //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_ZN_1;
void _ANTISHORT (unsigned char Q, float MinOn, float MinOff, unsigned char *Z)
{
if (!_Inited) {
_ANTISHORT_TIME = 0;
_ANTISHORT_ZN_1 = false;
}
_ANTISHORT_TIME -= _CYCLE;
if (_ANTISHORT_TIME <= 0)
*Z = Q;
if (*Z && !_ANTISHORT_ZN_1)
_ANTISHORT_TIME = MinOn;
if (!(*Z) && _ANTISHORT_ZN_1)
_ANTISHORT_TIME = MinOff;
_ANTISHORT_ZN_1 = *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 <string.h>
#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] = Dinput_0;
DI[1] = Dinput_1;
DI[2] = Dinput_2;
DI[3] = Dinput_3;
}
//-------------------------------------------------------------------
typedef void (*MagicFuncTyp)(void);
#include <intrins.h>
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<FLOATCOUNTO;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<FLOATCOUNTL;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<FLOATCOUNTN;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<FCELLCOUNT;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_MC8_125
PSBANK=0x21;
#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_MC8_125
PSBANK=0x11;
#endif
}
//-------------------------------------------------------------------
#if _ALLTHERETAINS>0
xdata char _RAMRetainPtr[_ALLTHERETAINS] _at_ _RAMSavedLoc;
code char _ROMRetainPtr[_ALLTHERETAINS] _at_ _ROMSavedLoc;
void SaveRetains()
{
#define xdata
int i;
#ifdef DEVICE_MC8_125
PSBANK=0x21;
#endif
for(i = 0; i < _ALLTHERETAINS; i++)
{
if(_RAMRetainPtr[i+_ALLTHESTATICS] != _ROMRetainPtr[i+_ALLTHESTATICS])
{
_Save_Command = 0x5555;
break;
}
}
#ifdef DEVICE_MC8_125
PSBANK=0x11;
#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_INPUTN_1 = X34078064_INPUTN_1;
_THERMISTORBR_STORAGE = X34078064_STORAGE;
_THERMISTORBR_FLAG = X34078064_FLAG;
_THERMISTORBR_EXCN_1 = X34078064_EXCN_1;
_SAVE_INNUM = _INNUM;
_INNUM = 0;
_THERMISTORBR(AI(0),&FFLOATBLANK,&FFLOATBLANK,&BBOOLBLANK,0);
X34078064_FAUL = _THERMISTORBR_FAUL;
X34078064_INPUTN_1 = _THERMISTORBR_INPUTN_1;
X34078064_STORAGE = _THERMISTORBR_STORAGE;
X34078064_FLAG = _THERMISTORBR_FLAG;
X34078064_EXCN_1 = _THERMISTORBR_EXCN_1;
_INNUM = _SAVE_INNUM;
_THERMISTORBR_FAUL = X25528264_FAUL;
_THERMISTORBR_INPUTN_1 = X25528264_INPUTN_1;
_THERMISTORBR_STORAGE = X25528264_STORAGE;
_THERMISTORBR_FLAG = X25528264_FLAG;
_THERMISTORBR_EXCN_1 = X25528264_EXCN_1;
_SAVE_INNUM = _INNUM;
_INNUM = 1;
_THERMISTORBR(AI(1),&FLOATARRO[20],&FFLOATBLANK,&BOOLARRO[5],0);
X25528264_FAUL = _THERMISTORBR_FAUL;
X25528264_INPUTN_1 = _THERMISTORBR_INPUTN_1;
X25528264_STORAGE = _THERMISTORBR_STORAGE;
X25528264_FLAG = _THERMISTORBR_FLAG;
X25528264_EXCN_1 = _THERMISTORBR_EXCN_1;
_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_ZN_1 = X53536616_ZN_1;
_SAVE_INNUM = _INNUM;
_INNUM = 3;
_ANTISHORT(DI(3),0,0,&BOOLARRO[35]);
X53536616_TIME = _ANTISHORT_TIME;
X53536616_ZN_1 = _ANTISHORT_ZN_1;
_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_YIN_1 = X53376856_YIN_1;
_PID2AOOVR_XN_1 = X53376856_XN_1;
_PID2AOOVR_YD1N_1 = X53376856_YD1N_1;
_PID2AOOVR_YAN_1 = X53376856_YAN_1;
_PID2AOOVR_YULM = X53376856_YULM;
_PID2AOOVR(FLOATARRO[8],&FLOATARRO[7],&FFLOATBLANK,FALSE,0.5,2.5,300,0,0,100,BOOLARRO[0],0);
X53376856_YIN_1 = _PID2AOOVR_YIN_1;
X53376856_XN_1 = _PID2AOOVR_XN_1;
X53376856_YD1N_1 = _PID2AOOVR_YD1N_1;
X53376856_YAN_1 = _PID2AOOVR_YAN_1;
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_MC8_125) || 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
Размещено на Allbest.ru
...Подобные документы
Создание цифровой сети интегрированных услуг. Организация электронной передачи данных между предприятиями. Сущность технологии открытых систем. Основные виды модуляции модемов. Цифровые технологии передачи данных. Основные характеристики сетевых карт.
реферат [35,7 K], добавлен 26.03.2010Выбор конструкционных материалов, элементной базы и алгоритм изготовления печатной платы шлюза для связи центрального процессора с периферийными устройствами. Предварительный расчет массогабаритных характеристик. Конструкция РЭМ, оценка качества изделия.
курсовая работа [169,2 K], добавлен 14.08.2012Понятие и классификация систем передачи данных. Характеристика беспроводных систем передачи данных. Особенности проводных систем передачи данных: оптико-волоконных и волоконно-коаксиальных систем, витой пары, проводов. Оценка производителей аппаратуры.
курсовая работа [993,0 K], добавлен 04.03.2010Анализ методов реализации интеллектуальных игр в системе человек-робот. Разработка архитектуры программного комплекса, выбор языка программирования. Алгоритм преобразования данных. Тестирование программного комплекса, редактирование и исправление ошибок.
дипломная работа [2,6 M], добавлен 27.10.2017Конфигурирование персонального компьютера для Вооруженных сил Российской Федерации и обоснование выбора комплектующих для него. Анализ характеристик комплектующих: процессора, материнской платы, видеокарты, жесткого диска и периферийных устройств.
курсовая работа [1,9 M], добавлен 16.07.2013Уровни архитектуры IP-телефонии. Особенности передачи речевой информации по IP–сетям. Влияние операционной системы. Количество передаваемых в пакете кадров. Взаимодействие модулей УШ и модуля протокола RTP. Информация конфигурации и контроля модуля УШ.
отчет по практике [128,4 K], добавлен 22.07.2012Характеристика современных зарубежных и отечественных SCADA-систем. Описания программного комплекса для визуализации и диспетчеризации технологических процессов. Обработка, отображение и архивирование информации об объекте мониторинга или управления.
реферат [600,8 K], добавлен 26.10.2014Описание таблиц и полей данных. Организация связей между таблицами. Начало работы с программой. Алгоритмы добавления данных. Основные формы программы. Главные этапы загрузки данных. Использование VBA для решения инженерных и экономических задач.
курсовая работа [792,0 K], добавлен 22.01.2015Автоматизация проектирования на основе применения ЭВМ. Алгоритм решения задачи расчета плоскоконической передачи. Контроль корректности функционирования и пригодности программы к эксплуатации. Оптимизация конической передачи. Условия выполнения программы.
курсовая работа [796,6 K], добавлен 24.06.2013Целесообразность разработки адаптивной системы передачи данных. Возможность изменения параметров помехоустойчивых кодов. Информационный подход к оценке качества функционирования систем передачи информации. Алгоритм работы передатчика и приемника.
дипломная работа [1,7 M], добавлен 27.03.2013Описание структурированной кабельной системы, сетевого оборудования и среды передачи данных. Особенности технологии Ethernet. Выбор топологии сети и способа управления ею. Проектирование проводной и беспроводной локальных сетей. Конфигурирование сервера.
аттестационная работа [2,1 M], добавлен 25.12.2012Функция протокола и структура пакета разрабатываемого протокола. Длина полей заголовка. Расчет длины буфера на приеме в зависимости от длины пакета и допустимой задержки. Алгоритмы обработки данных на приеме и передаче. Программная реализация протокола.
курсовая работа [1,0 M], добавлен 18.05.2014Уровни передачи информации: синтаксический; семантический; прагматический. Краткая характеристика поколений ЭВМ в соответствии с элементной базой и уровнем развития программных средств. Характеристика специальных средств редактирования текста Word.
контрольная работа [41,4 K], добавлен 08.06.2010Современные средства связи и их характеристика. Разработка структуры сети передачи данных. Выбор типа доступа. Основные уровни модели OSI, технология доступа. Выбор оборудования, характеристики сервера. Расчет стоимостных показателей для прокладки сети.
курсовая работа [411,7 K], добавлен 22.04.2013Описание основных типов станций протокола HDLC. Нормальный, асинхронный и сбалансированный режимы работы станции в состоянии передачи информации. Методы управления потоком данных. Формат и содержание информационного и управляющего полей протокола HDLC.
лабораторная работа [77,1 K], добавлен 02.10.2013Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики. Типы, структуры данных и функции, использованные при реализации программного комплекса. Тип и структура файла для хранения ландшафта. Связи между модулями программы.
курсовая работа [2,8 M], добавлен 24.06.2009Условное разделение частей ЭВМ на основные и периферийные устройства. Использование последовательной передачи данных в интерфейсе винчестеров Serial ATA. Порядок установки и конфигурирование нового контроллера, модернизация BIOS, основы технологии RAID.
курсовая работа [1,3 M], добавлен 21.05.2009Понятие, особенности и уровни промышленных сетей. Сравнение протоколов передачи данных HART, Industrial Ethernet, Foundation Filedbus, CAN, Modbus, их достоинства и недостатки. Физический и канальный уровни сети Profibus. Распределение функций управления.
презентация [812,9 K], добавлен 29.11.2013Функции пользователей в локальной вычислительной сети, анализ и выбор организации ресурсов. Выбор сетевой операционной системы. Сервисное программное обеспечение. Выбор протокола, сетевой технологии и кабеля. Резервирование и архивирование данных.
дипломная работа [2,0 M], добавлен 22.02.2013Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.
лекция [15,5 K], добавлен 19.08.2013