zoukankan      html  css  js  c++  java
  • modbus协议显示屏|modbus通讯显示屏|modbus显示电子屏功能码实现代码分享

    modbus协议显示屏|modbus通讯显示屏|modbus显示电子屏功能码实现代码分享,主要用来实现“预置多个寄存器功能码”。

    MODBUS-RTU协议的“0X1F”功能码实物效果图拍摄如下:

    MODBUS-RTU协议的“0X1F”功能码示例如下:

    例:请求在从机MODBUS显示屏设备17 中的2 个寄存器中放入预置值,起始寄存器为40002 ,预置值为00 0AH 和01 02H。
    QUERY
    Field Name
    Slave Address
    Function
    Starting Address Hi
    Starting Address Lo
    No. of Registers Hi
    No. of Registers Lo
    Byte Count
    Data Hi
    Data Lo
    Data Hi
    Data Lo
    Error Check (LRC or CRC)


    Example
    (Hex)
    11
    10
    00
    01
    00
    02
    04
    00
    0A
    01
    02

    预置多个寄存器

     void ISR_Usart1(void){
     unsigned int crc=0,i=0;
     unsigned char x=0;
     //nx,ny校正
     if(nx==0){
       x=4;
     }else{
      x=nx-1;
     }
     //工业MODBUS显示屏参数处理
     if(Rxdata[0]==IP_Num[x][0]&&Rxdata[1]==0x03){
      crc=crc16(Rxdata,5);
      if(crc==(Rxdata[6]<<8)+Rxdata[5]){
       //校验正确接收处理数据进入
       MODBUS_Num[x][0]=(Rxdata[3]<<8)+Rxdata[4];       
      }
     }
     //MODBUS通讯时间参数处理
     if(Rxdata[0]==0x55&&Rxdata[1]==0x03){
      crc=crc16(Rxdata,19);
      if(crc==(Rxdata[20]<<8)+Rxdata[19]){
       //校验正确接收处理数据进入
       for(i=0;i<8;i++){
        time_buf[i]=Rxdata[4+2*i];
       }
       for(i=0;i<7;i++){
        time_num[0+2*i]=time_buf[i]>>4;
        time_num[1+2*i]=time_buf[i]&0x0f;
       }       
      }
     }
    }

    ---------由立显光电技术提供,请勿转载,谢谢!

    立显光电项目负责人:徐飞
    英文名称:parserval
    联系电话:13927460644
              0796-7203100
    QQ:13654984
    EMAIL:parserval@126.com
           led@vip.qq.com
    网址:http://www.ledsup.com
    邮编:518038

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------联系方式--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------专业LED时钟、MODBUS显示屏、PRFOIBUS显示屏、同步LED数字钟生产厂家。欢迎来电技术交流与指正,谢谢! 法人代表:徐飞 英文名称:parserval 联系电话:13927460644 0796-7203100 QQ:13654984 EMAIL:parserval@126.com led@vip.qq.com 网址:http://www.ledsup.com 邮编:518038
  • 相关阅读:
    使用boost中的property_tree实现配置文件
    C++ 中使用boost::property_tree读取解析ini文件
    引用计数的原理和实例
    C++智能指针(auto_ptr)详解
    Oracle数据库用户锁定原因以及处理方式(ORA-28000)
    Address already in use : connect 的解决办法
    JMeter之Ramp-up Period(in seconds)说明(可同时并发)
    JMETER压力测试报错:JAVA.NET.BINDEXCEPTION: ADDRESS ALREADY IN USE: CONNECT
    spring cloud学习填坑笔记
    使用JMeter进行一次简单的带json数据的post请求测试,json可配置参数
  • 原文地址:https://www.cnblogs.com/parserval/p/6722461.html
Copyright © 2011-2022 走看看