Исправлена автокалибровка
This commit is contained in:
parent
a9c42feb81
commit
3f5e355783
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@ PHYSICAL MEMORY PARAMETERS
|
|||||||
|
|
||||||
BOOT LOADER PARAMETERS
|
BOOT LOADER PARAMETERS
|
||||||
Table Type: SERIAL PORT (SCI 8 bit Mode)
|
Table Type: SERIAL PORT (SCI 8 bit Mode)
|
||||||
Entry Point: 0x0000b576
|
Entry Point: 0x0000b589
|
||||||
|
|
||||||
|
|
||||||
OUTPUT TRANSLATION MAP
|
OUTPUT TRANSLATION MAP
|
||||||
@ -21,9 +21,9 @@ OUTPUT TRANSLATION MAP
|
|||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
OUTPUT FILES: D:\project2833\GIT\UKSS_23550_2\bin\UKSSTMS320F28335.bin [b0..b7]
|
OUTPUT FILES: D:\project2833\GIT\UKSS_23550_2\bin\UKSSTMS320F28335.bin [b0..b7]
|
||||||
|
|
||||||
CONTENTS: 00000000..00007481 BOOT TABLE
|
CONTENTS: 00000000..000074a7 BOOT TABLE
|
||||||
.cinit : dest=0000b6cb size=000001f7 width=00000002
|
.cinit : dest=0000b6de size=000001f7 width=00000002
|
||||||
.text : dest=00008000 size=000036cb width=00000002
|
.text : dest=00008000 size=000036de width=00000002
|
||||||
ramfuncs : dest=0000c13c size=0000002b width=00000002
|
ramfuncs : dest=0000c13c size=0000002b width=00000002
|
||||||
.econst : dest=0000c000 size=00000111 width=00000002
|
.econst : dest=0000c000 size=00000111 width=00000002
|
||||||
.switch : dest=0000c168 size=00000028 width=00000002
|
.switch : dest=0000c168 size=00000028 width=00000002
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -56,9 +56,9 @@ void setup_adc()
|
|||||||
if(Desk==dsk_COMM)
|
if(Desk==dsk_COMM)
|
||||||
{
|
{
|
||||||
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x0001; // Setup 2 conv's on SEQ1
|
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x0001; // Setup 2 conv's on SEQ1
|
||||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x5; // ñíà÷àëà òîæå áóäóò òåìïåðàòóðû
|
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x5; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x4; // Setup ADCINA2 as 2nd SEQ1 conv.
|
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x4; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||||
/* À íàïðàæåíèé íàì òóò è íå íàäî
|
/* <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD>
|
||||||
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x7; // Setup ADCINA2 as 2nd SEQ1 conv.
|
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x7; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||||
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x2; // Setup ADCINA2 as 2nd SEQ1 conv.
|
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x2; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||||
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x3; // Setup ADCINA2 as 2nd SEQ1 conv.
|
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x3; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||||
@ -163,7 +163,7 @@ interrupt void adc_isr(void)
|
|||||||
if(TermoAD)
|
if(TermoAD)
|
||||||
{
|
{
|
||||||
if(cownt_cans == TPL_CANS ) code_tpl_canal = TERMOPAIR-1;
|
if(cownt_cans == TPL_CANS ) code_tpl_canal = TERMOPAIR-1;
|
||||||
if(cownt_cans == TPL_CANS+1) code_tpl_canal = TERMOPAIR-2; // ïîòîìó ÷òî 300 è 400 íàîáîðîò
|
if(cownt_cans == TPL_CANS+1) code_tpl_canal = TERMOPAIR-2; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 300 <20> 400 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
}
|
}
|
||||||
select_tpl_canal(code_tpl_canal);
|
select_tpl_canal(code_tpl_canal);
|
||||||
}
|
}
|
||||||
@ -181,12 +181,11 @@ interrupt void adc_isr(void)
|
|||||||
|
|
||||||
if(ok|!prev_ok[n])
|
if(ok|!prev_ok[n])
|
||||||
{
|
{
|
||||||
if(WAKE) ADC_table[n] = Temper;
|
Filter = filterbat(&adc_filter[n],Temper);
|
||||||
else
|
|
||||||
{
|
if(WAKE)ADC_table[n] = Temper;
|
||||||
Filter = filterbat(&adc_filter[n],Temper);
|
else ADC_table[n] = Filter;
|
||||||
ADC_table[n] = Filter;
|
} }
|
||||||
} } }
|
|
||||||
|
|
||||||
if(++cownt_one_canal>=COUNT_ONE_CANAL)
|
if(++cownt_one_canal>=COUNT_ONE_CANAL)
|
||||||
{ cownt_one_canal=0;
|
{ cownt_one_canal=0;
|
||||||
@ -214,7 +213,7 @@ modbus[0x2F]=Log.Adres;
|
|||||||
{
|
{
|
||||||
cownt_cans = 0;
|
cownt_cans = 0;
|
||||||
|
|
||||||
Test_mem_limit(TermoSW*(TPL_CANS+2));
|
Test_mem_limit(2*TermoSW*(TPL_CANS+1));
|
||||||
if(cWriteLog)no_write=1;
|
if(cWriteLog)no_write=1;
|
||||||
|
|
||||||
} }
|
} }
|
||||||
|
|||||||
@ -112,27 +112,25 @@
|
|||||||
#define CanCycle (modbus+0x78) // ñ÷åò÷èê ïðîõîæäåíèé öèêëîâ CAN
|
#define CanCycle (modbus+0x78) // ñ÷åò÷èê ïðîõîæäåíèé öèêëîâ CAN
|
||||||
#define CanRound (modbus+0x7A) // ñ÷åò÷èê îòîñëàííûõ ìàññèâîâ
|
#define CanRound (modbus+0x7A) // ñ÷åò÷èê îòîñëàííûõ ìàññèâîâ
|
||||||
|
|
||||||
|
#define komanda modbus[124]
|
||||||
#define Protokol modbus[125]
|
#define Protokol modbus[125]
|
||||||
#define LastMode modbus[126]
|
#define LastMode modbus[126]
|
||||||
#define Commands modbus[127]
|
#define Commands modbus[127]
|
||||||
|
|
||||||
#define comand modbus[128]
|
#define bit_kom Modbus[124]
|
||||||
#define bit_comand Modbus[128]
|
|
||||||
|
|
||||||
#define cTestLamp bit_comand.bit.bit0
|
#define cTestLamp bit_kom.bit.bit0
|
||||||
#define cDefParam bit_comand.bit.bit1
|
#define cDefParam bit_kom.bit.bit1
|
||||||
#define cSaveParam bit_comand.bit.bit2
|
#define cSaveParam bit_kom.bit.bit2
|
||||||
#define cLoadParam bit_comand.bit.bit3
|
#define cLoadParam bit_kom.bit.bit3
|
||||||
#define cTermoCal bit_comand.bit.bit4
|
#define cTermoCal bit_kom.bit.bit4
|
||||||
#define cKoefCalc bit_comand.bit.bit5
|
#define cKoefCalc bit_kom.bit.bit5
|
||||||
#define cSecretBt bit_comand.bit.bit6
|
#define cSecretBt bit_kom.bit.bit6
|
||||||
#define cCanReset bit_comand.bit.bit7
|
#define cCanReset bit_kom.bit.bit7
|
||||||
#define cRawMeat bit_comand.bit.bit8
|
#define cRawMeat bit_kom.bit.bit8
|
||||||
#define cLiteFire bit_comand.bit.bit9
|
|
||||||
#define cHighVolt bit_comand.bit.bitA
|
|
||||||
|
|
||||||
#define cWriteLog bit_comand.bit.bitE
|
#define cWriteLog bit_kom.bit.bitE
|
||||||
#define cReset bit_comand.bit.bitF
|
#define cReset bit_kom.bit.bitF
|
||||||
|
|
||||||
#endif //PACKAGE
|
#endif //PACKAGE
|
||||||
|
|
||||||
|
|||||||
@ -115,6 +115,7 @@ void main()
|
|||||||
|
|
||||||
LastMode = Mode;
|
LastMode = Mode;
|
||||||
Protokol = PROTOKOL;
|
Protokol = PROTOKOL;
|
||||||
|
precom = Commands;
|
||||||
|
|
||||||
for(i=0;i<0x80;i++)
|
for(i=0;i<0x80;i++)
|
||||||
county[i]=1;
|
county[i]=1;
|
||||||
@ -124,8 +125,6 @@ void main()
|
|||||||
CanRound[i]=
|
CanRound[i]=
|
||||||
CanCycle[i]=0;
|
CanCycle[i]=0;
|
||||||
|
|
||||||
comand=0;
|
|
||||||
|
|
||||||
EALLOW;
|
EALLOW;
|
||||||
SysCtrlRegs.WDCR= 0x2F;
|
SysCtrlRegs.WDCR= 0x2F;
|
||||||
EDIS;
|
EDIS;
|
||||||
@ -249,13 +248,14 @@ void main()
|
|||||||
get_Buttons();
|
get_Buttons();
|
||||||
|
|
||||||
if(Commands!=precom)
|
if(Commands!=precom)
|
||||||
comand = Commands & (~precom|comand);
|
komanda = Commands & (~precom|komanda);
|
||||||
precom = Commands;
|
precom = Commands;
|
||||||
|
|
||||||
if(cDefParam)
|
if(cDefParam)
|
||||||
{
|
{
|
||||||
cDefParam=0;
|
cDefParam=0;
|
||||||
Default_params();
|
Default_params();
|
||||||
|
Commands=precom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cSaveParam)
|
if(cSaveParam)
|
||||||
@ -268,6 +268,7 @@ void main()
|
|||||||
{
|
{
|
||||||
cLoadParam=0;
|
cLoadParam=0;
|
||||||
Load_params();
|
Load_params();
|
||||||
|
Commands=precom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cKoefCalc)
|
if(cKoefCalc)
|
||||||
|
|||||||
@ -242,7 +242,7 @@ void Init_packMask()
|
|||||||
Maska[m_FAST][7]|= 0x0100; // Ñ÷åò÷èê ïîñûëîê
|
Maska[m_FAST][7]|= 0x0100; // Ñ÷åò÷èê ïîñûëîê
|
||||||
Maska[m_SLOW][7]|= 0x0E00; // Ñ÷åò÷èê ïîñûëîê
|
Maska[m_SLOW][7]|= 0x0E00; // Ñ÷åò÷èê ïîñûëîê
|
||||||
Maska[m_SLOW][7]|= 0x6000; // Ïðîòîêîë, àäðåñ
|
Maska[m_SLOW][7]|= 0x6000; // Ïðîòîêîë, àäðåñ
|
||||||
Maska[m_FAST][7]|= 0x8000; // Êîìàíäû
|
Maska[m_FAST][7]|= 0x9000; // Êîìàíäû
|
||||||
}
|
}
|
||||||
|
|
||||||
int er_anal(int term, long * count, int edge, int pre)
|
int er_anal(int term, long * count, int edge, int pre)
|
||||||
@ -316,7 +316,8 @@ void Temper_count(int chan)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(WAKE)out_filter[chan] = Numb;
|
if(WAKE)out_filter[chan] = Numb;
|
||||||
else out_filter[chan]+=(Numb-out_filter[chan])/MesPerSec;
|
out_filter[chan]+=(Numb-out_filter[chan])/MesPerSec;
|
||||||
|
|
||||||
Numb = out_filter[chan];
|
Numb = out_filter[chan];
|
||||||
|
|
||||||
kun = chan - cal_addr;
|
kun = chan - cal_addr;
|
||||||
|
|||||||
@ -43,37 +43,37 @@ void Default_params()
|
|||||||
for(i=0;i<7;i++)
|
for(i=0;i<7;i++)
|
||||||
Bright[i] = bright[Mode-adr_PLT1][i];
|
Bright[i] = bright[Mode-adr_PLT1][i];
|
||||||
|
|
||||||
Cancount[m_FAST] = 2; // * 10msec, пауза между посылками CAN
|
Cancount[m_FAST] = 2; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||||
Cancount[m_SLOW] = 100; // * 10msec, пауза между посылками CAN
|
Cancount[m_SLOW] = 100; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||||
|
|
||||||
CanWait[m_FAST] = 1; // * 10msec, пауза после цикла
|
CanWait[m_FAST] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
CanWait[m_SLOW] = 1; // * 10msec, пауза после цикла
|
CanWait[m_SLOW] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
CanRestart[m_FAST] = 500; // * 10msec, перезапуск посылки
|
CanRestart[m_FAST] = 500; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
CanRestart[m_SLOW] = 1000; // * 10msec, перезапуск посылки
|
CanRestart[m_SLOW] = 1000; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
CanRptVez = 5; // кол-во повторений посылки «keys»
|
CanRptVez = 5; // <EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||||
CanRptLen = 1; // длина повтораемой посылки «keys»
|
CanRptLen = 1; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Cancount[m_FAST] = 20; // * 10msec, пауза между посылками CAN
|
Cancount[m_FAST] = 20; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||||
Cancount[m_SLOW] = 100; // * 10msec, пауза между посылками CAN
|
Cancount[m_SLOW] = 100; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||||
|
|
||||||
CanWait[m_FAST] = 1; // * 10msec, пауза после цикла
|
CanWait[m_FAST] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
CanWait[m_SLOW] = 1; // * 10msec, пауза после цикла
|
CanWait[m_SLOW] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
CanRestart[m_FAST] = 500; // * 10msec, перезапуск посылки
|
CanRestart[m_FAST] = 500; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
CanRestart[m_SLOW] = 1000; // * 10msec, перезапуск посылки
|
CanRestart[m_SLOW] = 1000; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
CanRptVez = 1; // кол-во повторений посылки «keys»
|
CanRptVez = 1; // <EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||||
CanRptLen = 1; // длина повтораемой посылки «keys»
|
CanRptLen = 1; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Mode == adr_PLT1)
|
if(Mode == adr_PLT1)
|
||||||
{
|
{
|
||||||
RSleng = 9; // длина посылки RS485
|
RSleng = 9; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RS485
|
||||||
RScount = 25; // * 10msec, пауза между посылками RS485
|
RScount = 25; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RS485
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Desk == dsk_COMM)
|
if(Desk == dsk_COMM)
|
||||||
@ -141,11 +141,10 @@ void Load_params()
|
|||||||
Save_params();
|
Save_params();
|
||||||
if(TermoSW)
|
if(TermoSW)
|
||||||
{
|
{
|
||||||
cTermoCal = 1;
|
|
||||||
Caliber_time = 25L * ADC_FREQ;
|
Caliber_time = 25L * ADC_FREQ;
|
||||||
|
cTermoCal = 1;
|
||||||
} } }
|
} } }
|
||||||
|
|
||||||
|
|
||||||
void Save_params()
|
void Save_params()
|
||||||
{
|
{
|
||||||
unsigned int i,dif=0;
|
unsigned int i,dif=0;
|
||||||
@ -160,13 +159,12 @@ void Save_params()
|
|||||||
{
|
{
|
||||||
param[ANSWER_LEN] = get_crc16(param,ANSWER_LEN);
|
param[ANSWER_LEN] = get_crc16(param,ANSWER_LEN);
|
||||||
Seeprom_write(0x3FFF-(ANSWER_LEN+1),param,(ANSWER_LEN+1)*2);
|
Seeprom_write(0x3FFF-(ANSWER_LEN+1),param,(ANSWER_LEN+1)*2);
|
||||||
}
|
} }
|
||||||
}
|
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
/* Передача данных по протоколу ModBus - команда 3
|
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ModBus - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3
|
||||||
Чтение ачеек данных */
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
|
|
||||||
@ -174,15 +172,15 @@ void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
|||||||
{
|
{
|
||||||
unsigned int crc, Address_MB, Length_MB, cal, i;
|
unsigned int crc, Address_MB, Length_MB, cal, i;
|
||||||
|
|
||||||
// получили начальный адрес чтениа
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
Address_MB =/*(rs_arr->RS_Header[2] << 8) |*/ rs_arr->RS_Header[3];
|
Address_MB =/*(rs_arr->RS_Header[2] << 8) |*/ rs_arr->RS_Header[3];
|
||||||
|
|
||||||
// получили количество слов данных
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
Length_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
Length_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// Отсылка
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
/* Посчитали контрольную сумму перед самой посылкой */
|
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
|
||||||
rs_arr->buffer[0] = CNTRL_ADDR;
|
rs_arr->buffer[0] = CNTRL_ADDR;
|
||||||
rs_arr->buffer[1] = CMD_MODBUS_3;
|
rs_arr->buffer[1] = CMD_MODBUS_3;
|
||||||
@ -232,17 +230,17 @@ void ReceiveCommandModbus6(RS_DATA *rs_arr)
|
|||||||
unsigned int Address_MB, Data_MB, i;
|
unsigned int Address_MB, Data_MB, i;
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// Отсылка
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
/* Отправлаем назад то же самое */
|
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
|
||||||
for (i=0;i<8;i++)
|
for (i=0;i<8;i++)
|
||||||
rs_arr->buffer[i] = rs_arr->RS_Header[i];
|
rs_arr->buffer[i] = rs_arr->RS_Header[i];
|
||||||
|
|
||||||
|
|
||||||
// получили начальный адрес записи
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
Address_MB = (/*(rs_arr->RS_Header[2] << 8) | */rs_arr->RS_Header[3]);
|
Address_MB = (/*(rs_arr->RS_Header[2] << 8) | */rs_arr->RS_Header[3]);
|
||||||
|
|
||||||
// получили слово данных
|
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
Data_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
Data_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||||
|
|
||||||
modbus[Address_MB] = Data_MB;
|
modbus[Address_MB] = Data_MB;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user