modbus txd发送程序
modbus程序
1. #include "ModBus.h"
2. //--------公有函数和变量-------
3. StrTxd xdata sys_txd;
4. /****************************************/
5. uint8 lchksum(uint8 data_len); //求LENTH_SUM函数
6. void txd_sta(void); //发送系统告警信息
7. void txd_man(void); //发送厂家信息
8. void txd_uni(uint8 cid2); //发送系统通信信息
9. /******************************************/
10. void package(void); //数据打包成ASCII码
11. void chksum (void); //求校验和
12. void com(void); //公共的发送函数
13. /******************************************/
14. uint8 lchksum(uint8 data_len)
15. {
16. uint8 sum,temp1;
17. sum = 0;
18. if (data_len)
19. {
20. sum = data_len & 0x0f;
21. temp1 = (data_len & 0xf0)>>4;
22. sum += temp1;
23. sum = sum %16;
24. sum = (~sum)+1;
25. sum = sum <<4;
26. }
27.
28. return sum;
29. }
30. /******************************************/
31. void package(void)
32. {
33. uint8 i;
34. uint8 temp1,temp2;
35.
36. sys_txd.pool[0] = FRAME_START;
37.
38. for(i = 1;i POOLLEN; i++)
39. {
40. if( (sys_txd.combuf[i] == 0xaa ) && (sys_txd.combuf[i+1] == 0x
55 ) ) //结束标志
41. {
42. sys_txd.pool[i*2-1] = FRAME_END;
43. break;


