当前位置: 首页 > news >正文

如何查看网站权重中国行业网站大全

如何查看网站权重,中国行业网站大全,获取网站访客qq号码,个人怎么注册网站流程一、概念 modbus是一个公开免费的协议#xff0c;广泛应用于工业控制领域#xff08;PLC和仪器#xff0c;PLC和PLC#xff0c;PLC和上位机#xff0c;PLC和触摸屏等等#xff0c;其中PLC是可控制逻辑单元#xff09; 他有两种物理接口#xff08;硬件协议#xff09;…一、概念 modbus是一个公开免费的协议广泛应用于工业控制领域PLC和仪器PLC和PLCPLC和上位机PLC和触摸屏等等其中PLC是可控制逻辑单元 他有两种物理接口硬件协议一个是串口RS232,RS485RS422一个是以太网。串口主要用于modbus RTU或者是modbus ascii模式而以太网主要用于modbus tcp协议。 一般的通信方式是主机广播或者单播发送指令从机分析请求并且给主机应答如果出错就返回异常功能码。从机只能响应主机不能主动发送数据 二、功能码0x01-读取线圈中的数据 主机发送读线圈数据注意数据以16进制格式发送 从机地址功能码寄存器起始地址高字节寄存器起始地址低字节寄存器数量高字节寄存器数量低字节CRC校验高字节CRC校验低字节 从机响应 注意接收数据也是16进制 从机地址功能码返回数据长度一个字节最多是255个数据数据CRC校验高字节CRC校验低字节 举例 主机01 01 00 00 00 08 3D CC 从机01 01 01 21 91 90 三、功能码0x03读保持寄存器的数据 typedef struct {//作为从机时使用u8 myadd; //本设备从机地址u8 rcbuf[100]; //modbus接受缓冲区u8 timout; //modbus数据持续时间u8 recount; //modbus端口接收到的数据个数u8 timrun; //modbus定时器是否计时标志u8 reflag; //modbus一帧数据接受完成标志位u8 sendbuf[100]; //modbus接发送缓冲区//作为主机添加部分u8 Host_Txbuf[8]; //modbus发送数组 u8 slave_add; //要匹配的从机设备地址做主机实验时使用u8 Host_send_flag;//主机设备发送数据完毕标志位int Host_Sendtime;//发送完一帧数据后时间计数u8 Host_time_flag;//发送时间到标志位1表示到发送数据时间了u8 Host_End;//接收数据后处理完毕}MODBUS;//参数1从机地址参数2起始地址参数3寄存器个数void Host_send03(uint8_t slave,uint16_t StartAddr,uint16_t num){int j;uint16_t crc;//计算的CRC校验位modbus.slave_addslave;//这是先把从机地址存储下来后面接收数据处理时会用到modbus.Host_Txbuf[0]slave;//这是要匹配的从机地址modbus.Host_Txbuf[1]0x03;//功能码modbus.Host_Txbuf[2]StartAddr/256;//起始地址高位modbus.Host_Txbuf[3]StartAddr%256;//起始地址低位modbus.Host_Txbuf[4]num/256;//寄存器个数高位modbus.Host_Txbuf[5]num%256;//寄存器个数低位crcModbus_CRC16(modbus.Host_Txbuf[0],6); //获取CRC校验位modbus.Host_Txbuf[6]crc/256;//CRC校验高位modbus.Host_Txbuf[7]crc%256;//CRC校验低位//开始发送数据RS485_TX_ENABLE;//使能485控制端(启动发送) for(j0;ji;j){Modbus_Send_Byte(modbus.sendbuf[j]);}RS485_RX_ENABLE;//失能485控制端改为接收}//主机接收从机的消息进行处理功能码0x03void HOST_receive03(){u16 crc,rccrc;//计算crc和接收到的crcif(modbus.reflag 0) //如果接收未完成则返回空{return;}//数组中除了最后两位CRC校验位其余全算crc Modbus_CRC16(modbus.rcbuf[0],modbus.recount-2); //获取CRC校验位rccrc modbus.rcbuf[modbus.recount-2]*256modbus.rcbuf[modbus.recount-1];//计算读取的CRC校验位if(crc rccrc) //CRC检验成功 开始分析包{ if(modbus.rcbuf[0] modbus.slave_add) // 检查地址是是对应从机发过来的{if(modbus.rcbuf[1]3)//功能码时03{int i;int count(int)modbus.rcbuf[2];//这是数据个数printf(从机返回 %d 个寄存器数据\r\n,count/2);for(i0;icount;ii2){printf(data%d %d\r\n,i1,(int)modbus.rcbuf[4i]((int)modbus.rcbuf[3i])*256);}}}}} modbus.recount 0;//接收计数清零modbus.reflag 0; //接收标志清零}四、功能码0x06向一个寄存器中写入数据 void Host_send06(uint8_t slave,uint16_t Addr,uint16_t data){uint16_t crc,j;//计算的CRC校验位modbus.slave_addslave;//从机地址赋值一下后期有用modbus.Host_Txbuf[0]slave;//这是要匹配的从机地址modbus.Host_Txbuf[1]0x06;//功能码modbus.Host_Txbuf[2]Addr/256;//写入寄存器地址高位modbus.Host_Txbuf[3]Addr%256;//写入寄存器低位modbus.Host_Txbuf[4]data/256;//写入数据高位modbus.Host_Txbuf[5]data%256;//写入数据低位crcModbus_CRC16(modbus.Host_Txbuf[0],6); //获取CRC校验位modbus.Host_Txbuf[6]crc/256;//CRC校验高位modbus.Host_Txbuf[7]crc%256;//CRC校验低位//开始发送数据RS485_TX_ENABLE;//使能485控制端(启动发送) for(j0;ji;j){Modbus_Send_Byte(modbus.sendbuf[j]);}RS485_RX_ENABLE;//失能485控制端改为接收}//从机返回数据void Host_receive06(){int crc,rccrc;crc Modbus_CRC16(modbus.rcbuf[0],6); //获取CRC校验位rccrc modbus.rcbuf[6]*256modbus.rcbuf[7];//计算读取的CRC校验位if(crc rccrc) //CRC检验成功 开始分析包{ if(modbus.rcbuf[0] modbus.slave_add) // 检查地址是是对应从机发过来的{if(modbus.rcbuf[1]6)//功能码时06{printf(地址为 %d 的从机寄存器 %d 中写入数据 %d \r\n ,(int)modbus.rcbuf[0],(int)modbus.rcbuf[3]((int)modbus.rcbuf[2])*256,(int)modbus.rcbuf[5]((int)modbus.rcbuf[4])*256);}}} }五、功能码0x10-多个寄存器写入数据  理解加模仿然后自己写功能吗0x10的代码 六、主机接收从机所有数据合并函数 void Modbus_receiveAll(){u16 crc,rccrc;//crc和接收到的crcif(modbus.reflag 0) //如果接收未完成则返回空{return;}crc Modbus_CRC16(modbus.rcbuf[0],modbus.recount-2); //获取CRC校验位rccrc modbus.rcbuf[modbus.recount-2]*256modbus.rcbuf[modbus.recount-1];//计算读取的CRC校验位if(crc rccrc) //CRC检验成功 开始分析包{ if(modbus.rcbuf[0] modbus.myadd) // 检查地址是否时自己的地址{switch(modbus.rcbuf[1]) //分析modbus功能码{case 3: //处理读保存寄存器的数据的代码 break;case 6: //对应代码 break;case 16: //对应代码 break;}}else if(modbus.rcbuf[0] 0) //广播地址不予回应{} } modbus.recount 0;//接收计数清零modbus.reflag 0; //接收标志清零}
http://www.pierceye.com/news/713780/

相关文章:

  • 简约的网站设计界面百度收录网站左侧图片
  • 对建设网站未来发展的建议教育 网站模板
  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5
  • 做网站学的是代码吗机器封所有端口 不支持做网站
  • 类似于美团的网站开发两学一做网站专栏怎么设置
  • 天津seo网站管理千川推广官网
  • 技术支持 光速东莞网站建设企业信息免费查询系统
  • 网站设计主流尺寸weui wordpress模板
  • 汕头市网站建设商机互联网站建设
  • 口碑好的网站建设苏州园区做网站公司
  • 网站互联网设计图风格网站服务器异常是什么意思
  • 有哪些好的做兼职网站有哪些免费做ppt的网站
  • 学生成绩管理系统网站建设上海公共招聘网12333官网
  • 邵东做网站的公司wordpress修改文章字体颜色
  • 那个网站百度收录快天河高端网站建设
  • 网站建设 客户拜访wordpress设置新页面
  • 做百度推广送的网站网站建设中gif
  • 网站风格介绍wordpress怎么给产品编号
  • 站长聚集地深圳网络提速优化服务包
  • 西安外贸网站建设公司网站域名过期后续费多长时间生效
  • 网站制作资质2017建设厅网站
  • 网站系统开发毕业设计哈尔滨seo优化软件
  • 南通企业网站网站制作的书籍
  • 长沙网站收录怎么网站能找人做装修事
  • 鞍山网站制作谁家好2021没封的网站有人分享吗
  • 网站建设公司net2006iis虚拟网站
  • 有哪些竞价网站wordpress手机端网站模板下载