📄 commrs485.lst
字号:
471 ** 输 入: 无
472 ** 输 出: 无
473 ** 全局变量:
474 ** 调用模块:
475 **
476 ** 作 者: 李伟
477 ** 日 期: 2008年12月20日
478 **-------------------------------------------------------------------------------------------------------
479 ** 修 改 人:
480 ** 日 期:
481 **-------------------------------------------------------------------------------------------------------
482 ********************************************************************************************************/
483 void Comm_rs485_read_config(void)
484 {
485 1 uint8 i;
486 1 Suart_Send_Byte(0x7E); //报文头
487 1 ComCalculChkSum = 0;
488 1 CommSendByteWithChk((uint8)(ModeSysConfig[8])); //BoardAddress地址范围0~16
C51 COMPILER V7.06 COMMRS485 10/30/2008 13:20:06 PAGE 9
489 1 CommSendByteWithChk(CommCid); //CID 05
490 1 CommSendWordWithChk(0x9052); //LENTH
491 1 CommSendByteWithChk(0x01); //电压限值配置信息
492 1 for(i = 0;i < 9;i++)
493 1 {
494 2 CommSendWordWithChk(ModeSysConfig[i]);
495 2 }
496 1 CommSendByteWithChk(0x02); //温度限值配置信息
497 1 for(i = 0;i < 12;i++)
498 1 {
499 2 CommSendByteWithChk(ModeTempCofing[i]);
500 2 }
501 1 CommSendByteWithChk(0x03); //系数
502 1 CommSendWordWithChk(CUK);
503 1 CommSendWordWithChk(CTK);
504 1 CommSendWordWithChk(OTK);
505 1 ComCalculChkSum = (~ComCalculChkSum)+1;
506 1 CommSendByteWithoutChk((uint8)(ComCalculChkSum>>8));
507 1 CommSendByteWithoutChk((uint8)(ComCalculChkSum));
508 1 Suart_Send_Byte(0x0D);
509 1 }
510 /********************************************************************************************************
511 ** 函数名称: void Comm_rs485_write_vconfig(void)
512 ** 功能描述:
513 ** 输 入: 无
514 ** 输 出: 无
515 ** 全局变量:
516 ** 调用模块:
517 **
518 ** 作 者: 李伟
519 ** 日 期: 2008年12月20日
520 **-------------------------------------------------------------------------------------------------------
521 ** 修 改 人:
522 ** 日 期:
523 **-------------------------------------------------------------------------------------------------------
524 ********************************************************************************************************/
525 //void Comm_rs485_write_vconfig(void) //电压限值存储在第一扇区
526 //{
527 // uint8 i,c;
528 // uint16 address;
529 // c = 0;
530 // address = 0x2800;
531 // for(i = 1;i < 17;)
532 // {
533 // MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
534 // i++;
535 // i++;
536 // c++;
537 // }
538 // EepSectotErase(address);
539 // for(i = 0;i < 8;i++)
540 // {
541 // EepWriteWord(MoveVXdata[i],address);
542 // address++;
543 // address++;
544 // }
545 // for(i = 0;i < 8;i++) //将修正值赋给动作变量
546 // {
547 // ModeSysConfig[i] = EepReadWord(address);
548 // }
549 // CommRight();
550 //}
C51 COMPILER V7.06 COMMRS485 10/30/2008 13:20:06 PAGE 10
551 /********************************************************************************************************
552 ** 函数名称: void Comm_rs485_write_tconfig(void)
553 ** 功能描述:
554 ** 输 入: 无
555 ** 输 出: 无
556 ** 全局变量:
557 ** 调用模块:
558 **
559 ** 作 者: 李伟
560 ** 日 期: 2008年12月20日
561 **-------------------------------------------------------------------------------------------------------
562 ** 修 改 人:
563 ** 日 期:
564 **-------------------------------------------------------------------------------------------------------
565 ********************************************************************************************************/
566 //void Comm_rs485_write_tconfig(void) //温度限值存储在第二扇区
567 //{
568 // uint8 i;
569 // uint16 address;
570 // address = 0x2A00;
571 // for(i = 1;i < 13;i++)
572 // {
573 // MoveTdata[i] = CommRxBuf[i];
574 // }
575 // EepSectotErase(address);
576 // for(i = 0;i < 12;i++)
577 // {
578 // EepWriteByte(MoveTdata[i],address);
579 // address++;
580 // }
581 // for(i = 0;i < 12;i++) //将修正值赋给动作变量
582 // {
583 // ModeTempCofing[i] = EepReadByte(address);
584 // }
585 // CommRight();
586 //}
587 /********************************************************************************************************
588 ** 函数名称: void Comm_rs485_write_xconfig(void)
589 ** 功能描述:
590 ** 输 入: 无
591 ** 输 出: 无
592 ** 全局变量:
593 ** 调用模块:
594 **
595 ** 作 者: 李伟
596 ** 日 期: 2008年12月20日
597 **-------------------------------------------------------------------------------------------------------
598 ** 修 改 人:
599 ** 日 期:
600 **-------------------------------------------------------------------------------------------------------
601 ********************************************************************************************************/
602 void Comm_rs485_write_xconfig(void) //系数存储在第三扇区
603 {
604 1 uint8 i,c,j;
605 1 uint16 address;
606 1 c = 0;
607 1 j = 0;
608 1 address = 0x2C00;
609 1 for(i = 1;i < 7;)
610 1 {
611 2 MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
612 2 i++;
C51 COMPILER V7.06 COMMRS485 10/30/2008 13:20:06 PAGE 11
613 2 i++;
614 2 c++;
615 2 }
616 1 for(i = 0;i < 3;i++)
617 1 {
618 2 if((MoveVXdata[i] > 6000) && (MoveVXdata[i] < 15000))j++;
619 2 }
620 1 if(j == 3)
621 1 {
622 2 j = 0;
623 2 EepSectotErase(address);
624 2 for(i = 0;i < 3;i++)
625 2 {
626 3 EepWriteWord(MoveVXdata[i],address);
627 3 address++;
628 3 address++;
629 3 }
630 2 CUK = EepReadWord(address);
631 2 CTK = EepReadWord(address+2);
632 2 OTK = EepReadWord(address+4);
633 2 CommRight();
634 2 }
635 1 else
636 1 {
637 2 j = 0;
638 2 CommWrong();
639 2 }
640 1 }
641 /*********************************************************************************************************
642 ** 函数名称: void CommRs485Manage(void)
643 ** 功能描述:
644 ** 输 入: 无
645 ** 输 出: 无
646 ** 全局变量:
647 ** 调用模块:
648 **
649 ** 作 者: 李伟
650 ** 日 期: 2008年12月10日
651 **-------------------------------------------------------------------------------------------------------
652 ** 修 改 人:
653 ** 日 期:
654 **-------------------------------------------------------------------------------------------------------
655 ********************************************************************************************************/
656 void CommRs485Manage(void)
657 {
658 1 switch(CommCid)
659 1 {
660 2 case RS232_HAND_SHAKE: //握手命令 1
661 2 {
662 3 Comm_rs485_handshake();
663 3 }break;
664 2 case RS232_READ_ANALOG: //读模拟量 2
665 2 {
666 3 Comm_rs485_readanalog();
667 3 }break;
668 2 case RS232_READ_DIGITAL: //读数字量 3
669 2 {
670 3 Comm_rs485_read_digital();
671 3 }break;
672 2 case RS232_READ_CONFIG: //读配置 4
673 2 {
674 3 Comm_rs485_read_config();
C51 COMPILER V7.06 COMMRS485 10/30/2008 13:20:06 PAGE 12
675 3 }break;
676 2 case RS232_WRITE_VCONFIG: //电压限值配置 5
677 2 {
678 3 // Comm_rs485_write_vconfig();
679 3 }break;
680 2 case RS232_WRITE_TCONFIG: //温度限值配置 6
681 2 {
682 3 // Comm_rs485_write_tconfig();
683 3 }break;
684 2 case RS232_WRITE_XCONFIG: //系数配置 7
685 2 {
686 3 Comm_rs485_write_xconfig();
687 3 }break;
688 2 default: break;
689 2 }
690 1 }
691 /********************************************************************************************************
692 End of file
693 ********************************************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1591 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -