pic与维纶触摸屏的MODBUS程序

时间:2014-05-03 10:39:29
【文件属性】:

文件名称:pic与维纶触摸屏的MODBUS程序

文件大小:33KB

文件格式:C

更新时间:2014-05-03 10:39:29

modbus c语言程序

pic与维纶触摸屏的MODBUS程序 c语言这边描述是modbus.h文件 //extern uchar ACC; extern uchar sendBuf[40],receBuf[16]; extern uchar checkoutError; // ==2 偶校验错 extern uchar receTimeOut; extern ulint dwTickCount; uint crc_16(uchar *Array, uint Len); void beginSend(void); //开始发送 void checkComm0Modbus(void); //检查uart0数据 void readCoil(void); //读线圈状态 void readRegisters(void); //03读保持寄存器 void readInputRegisters(void); //04读取输入寄存器 void forceSingleCoil(void); //05强制单个线圈 void presetSingleRegister(void); //06设置单个寄存器 void presetMultipleRegisters(void);//16设置多个寄存器 void forceMultipleCoils(void); //强制多个线圈 void LightChang(uchar code); uint getRegisterVal(uint addr,uint *tempData); //取寄存器值 返回0表示成功 void getInputRegisterVal(uint addr,uint *tempData);//读取输入寄存器值 返回0表示成功 uint setRegisterVal(uint addr,uint tempData); //设置寄存器值 返回0表示成功 uint getCoilVal(uint addr,uint *tempData); //取线圈状态 返回0表示成功 uint setCoilVal(uint addr,uint tempData); //设定线圈状态 返回0表示成功 extern uchar sendCount; //发送字节个数 extern uchar receCount; //接收到的字节个数 extern uchar sendPosi; //发送位置 uchar testCoil; //用于测试 位地址1 uint testRegister; //用于测试 字址址16 uchar localAddr = 1; //单片机控制板的地址 uint Logocount=0; //LOgo显示时间计数 uint SysData[16]={0,1,2,3,4,5,6,7,8,9,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F};//系统保持寄存器数据存储寄存器 uint AreaPara1_Disp[10]={2000,2000,2000,2000,2000,2000,2000,2000,2000,2000};//区域1-10光量寄存器 uchar Group_View[10]={65,65,65,65,65,65,65,65,65,65}; //查看分组寄存器 uchar Group_Set[10]={65,65,65,65,65,65,65,65,65,65}; //设置分组寄存器65,66,67,68,69,70,71,72,77,78 uint GroupBit_Enable=0x0001; //分组使能位 uchar Group_Now=65; //当前设置分组 uchar Group_Save=65; //当前确认设置分组 uchar Mode_Now; //当前设置模式 uchar Mode_Save; //当前确认设置模式 uchar ModeChange; //PLC控制器件,地址4x-58,控制自动模式和手动模式的设置画面切换 uchar ModeLight_Now; //光量调节模式,0X26,1专家模式或0普通模式 uchar ModeLight_Save; //保存光量调节模式,0X26,1专家模式或0普通模式 uint Switch_Set=0x3ff; //开关设置 uint Switch_View=0x3ff; //开关查看 uint Contrl_Mode; //区域控制模式查看 uint Light_Mode; //区域调光模式查看 //uint ONFF_STATUS=0x3ff; //开关状态 uint Status_Sure=0x00; //状态确认标志寄存器 uint Status1_Sure=0x00; //状态确认标志寄存器 uint LightQul_Now=2000; //光量设置值 uint LightQul_Save; //光量设置保存值 uchar RedPercent_Now=100,BluePercent_Now=100; //红光蓝光百分比设置值0 uchar RedPercent_Save,BluePercent_Save; //红光蓝光百分比保存值 uchar StartHour_Now,StartMin_Now,OverHour_Now,OverMin_Now;//开启时间 时,开启时间 分 关闭时间 时,关闭时间 分 uchar StartHour_Save,StartMin_Save,OverHour_Save,OverMin_Save;//开启时间 时,开启时间 分 关闭时间 时,关闭时间 分 uint LightQulitity_Now=2000,LightQulitity_Save=2000; //在专家模式下,光量值。 //extern struct string Group[10]; //extern struct string Area[10]; extern uchar AreaNumber; //区域个数 uint SySecret; //系统设置密码 uchar SecretStauts=24; //系统密码输入状态 extern uint Rtc_SetHr ,Rtc_SetMin; //在设置实时时钟时操作的时间寄存器 extern uint Rtc_SetDay ,Rtc_SetSec; //在设置实时时钟时操作日寄存器和秒寄存器 extern uint Rtc_SetYear ,Rtc_SeMon; //在设置实时时钟时操作年寄存器和月寄存器 extern uint ONFF_STATUS; //开关状态 extern uchar Control_St; uchar PLC_Page; //触摸屏页码控制 extern uchar Zigbe_Cnt; extern uchar Zigbee_Send; //extern uchar PLC_Page; extern uchar Zigbe_Cnt;


网友评论

  • 很棒,好东西值得收藏,谢谢
  • 正是我需要的东西,
  • 电子工业通讯的参考蚝资料