modbus协议讲解,上位机与PLC交互

44 篇文章 9 订阅
订阅专栏
12 篇文章 20 订阅
订阅专栏
8 篇文章 0 订阅
订阅专栏

开发过程中modbus-RTU需要电脑USB口对外交互,参考我的文章:C# 通过Com端口和单片机通讯(232/485/USB)_花开莫与流年错_的博客-CSDN博客_c#与单片机通信

上位机和PLC交互的消息在Excel中配置,配置后通过Modbus协议加载到界面显示,Excel操作参考我的: C#使用EPPlus操作Excel(读写)_花开莫与流年错_的博客-CSDN博客_epplus读取excel

PLC使用ST语言开发,参考我的文章: 汇川中型PLC使用ST语言基础_花开莫与流年错_的博客-CSDN博客_axis_ref_sm3

网络通讯概况

        上学的时候讲过网络7层架构依次为:物理层》数据链路层》网络层》传输层》会话层》表示层》应用层。而实际网络为5层结构物理层》数据链路层》网络层》传输层》应用层

        物理层,通过网线、光纤、双绞线等传输,如485/232。

        数据链路层,负责传输数据,如:以太网协议、PPP协议,CAN协议、i2c、spi等嵌入式协议一般定义了物理层和数据链路层。

        网络层的引入主要是为了屏蔽不同网络的差异,实现不同网络内主机的通信。如:ARP协议(地址解析)、IP协议、ICMP(控制报文协议,路由通不通、消息是否可达、路由是否可用)。

        传输层,每一个应用程序都有一个端口号,用于对外界发送或者接收数据。如重用的TCP、UDP协议。

        应用层,网络结构中最上层,经常被接触到,如web、ftp文件传输、smtp邮件发送等。

Modbus协议

        Modbus采用主从(Master-Salve)通信模式,仅有主设备(Master)能对传输进行初始化,从设备(Slave)根据主设备的请求进行应答。典型的主设备包括现场仪表和显示面板,典型的从设备为可编程逻辑控制器(PLC)。

        主要包含三种协议,Modbus-RTU、Modbus-ASCII和Modbus-TCP。三种协议数据格式基本一致。其中RTU英文“ Remote Terminal Unit”属于传输层、传输数据是协议定义的正整数,电脑直接通过串口与设备交互,因为TCP层有校验参数是否正常,而传输层没有,所以RTU需要计算校验码用于验证是否是正确的modbus报文。Modbus-ASCII主要区别是以ASCII格式传输数据。Modbus-TCP则数据应用层,基于TCP传输。

协议报文(走TCP不需要附加地址和校验,因为TCP有校验位了)

 PLC做主上位机为从时,上位机提供502服务端口,PLC发上位机回。PLC做从则与之相反。

 

 发收报文如下(事物处理标识符为0应该也可以)

 modbus协议完整的文档,我有,不过我还是描述我们经常用到的吧,我之前开发只用到0x03查询、0x06设单个、0x10设多个、0x41自定义(升级单板、读取电子标签)。

0x03查询命令

 0x06设置单个参数

 0x10设置多个参数:00 01 00 00 00 13 FF 10 03 E8 00 06 0C 00 24 0B 95 00 00 00 00 00 00 00 00

 校验备份C++代码

/**
  * @brief modbus rtu校验
  * @param p_data:要校验的数据的地址
  *        data_len:要校验数据的长度(字节)
  *        data_crc:数据的校验码
  * @retval 无
  */
void CRC_Checkout_16(uint8_t *p_data,uint32_t data_ len,uint8_t *data_crc)
{
  uint16_t wcrc = 0xFFFF; 
  uint8_t temp; 
  uint32_t i=0,j=0; 
  for(i=0;i<data_len;i++) 
  {
    temp = *p_data & 0X00FF; 
    p_data++; 
    wcrc = wcrc^temp; 
    for(j=0;j<8;j++) 
    {
      if(wcrc & 0X0001) 
      {
        wcrc>>=1; 
        wcrc^=0XA001; 
      }
      else 
      {
        wcrc>>=1; 
      }
    }
  }
  temp=wcrc;

  data_crc[0]=wcrc; 
  data_crc[1]=wcrc>>8; 

  return ;
}

/* CRC 高位字节值表 */
static unsigned char auchCRCHi[] = 
{
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
  0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
  0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
  0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
  0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
  0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
  0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
  0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
  0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
  0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
  0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
  0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
  0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
  0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
  0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
} ;

/* CRC低位字节值表*/
static char auchCRCLo[] =
 {
  0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,
  0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,
  0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
  0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
  0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,
  0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
  0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,
  0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
  0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
  0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,
  0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,
  0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
  0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,
  0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,
  0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
  0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
  0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,
  0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
  0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,
  0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
  0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
  0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,
  0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,
  0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
  0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,
  0x43, 0x83, 0x41, 0x81, 0x80, 0x40
} ;

手把手教你从入门到精通C#与PLC通信
qq_34059233的博客
08-07 1850
本文是C#与PLC通信专栏的导读,详细介绍了本专栏将会介绍C#与哪些PLC进行通信,是C#与PLC通信不可多得的实战经验教材!
modbus协议上位机
09-05
基于c#的modbus上位机软件,可修改从机地址,功能码,寄存器地址,寄存器数量来与下位机通讯。欢迎大家下载!!
汇川AM402、H3U和上位机C#ModebusTcp通讯
panjinliang066333的博客
03-02 1万+
目录一、测试任务二、测试环境三、PLC工程1、组态配置2、ip地址、端口号 3、全局变量定义四、C#端Winform程序创建1创建主界面 2、创建子窗口 3、运行生成,界面效果4、Modebus协议说明5、Modebus操作说明六、测试1、寄存器读测试 2、MW1300寄存器的BIT位3、写寄存器测试4、PLC断电或者断网 七、工程下载连接1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。2、PC端在有的PLC断电、断网的
C#上位机汇川全系列PLCModbusTCP通信实例源码
nTLZpA的博客
09-14 4340
在工业自动化领域,PLC(可编程逻辑控制器)是一种广泛使用的装置。其中,汇川全系列PLC因其高性能和可靠性而受到许多工程师的青睐。本文将介绍一个使用C#编写的上位机汇川全系列PLC进行ModbusTCP通信的实例源码。该源码包含详尽的注释,可以帮助读者更好地理解代码的逻辑和实现方式。Modbus是一种串行通信协议,被广泛应用于工业控制系统中。ModbusTCP是基于TCP/IP协议Modbus协议,它允许设备之间进行高速、可靠的数据交换。
上位机连接plc
思月亮卷的专栏
07-25 4868
上位机连接plc
c# MODBUS协议 上位机
weixin_30472035的博客
02-15 1997
C#写了一款上位机监控软件,基于MODBUS_RTU协议。 软件的基本结构: 采用定时器(Timer控件)为时间片。 串口采用serialPort1_DataReceived中断接收,并进行MODBUS格式判断。 把正确接收的数据取出,转换为有特定的结构体中。 数据通过时间片实时刷新。 MODBUS协议(这里不介绍了,网上有很多的权威资料)。   串口接收问题 这里采用...
上位机与西门子PLC通信协议
热门推荐
年少青山的博客
01-06 1万+
前言 最近西门子PLC价格大幅上调,在工控界引起了不小的风波,不仅涨价,甚至还缺货,导致很多人不得不更改方案。听说最近已经完成了芯片替换,希望不久能够恢复供货,并把价格回调。 通过这件事,从侧面可以看出,西门子在工控领域的市场占有率很大,那么对于上位机开发人员来说,使用西门子PLC作为下位机,我们应该如何与之进行通信呢? 西门子PLC支持很多种通信协议,主要分为两种,一种是串口通信,一种是以太网通信,同时也可以通过OPC实现数据通信。 串口通信 西门子PLC支持串口通信,在S7-200和S7-20
C#上位机与三菱PLC的通信02--MC协议介绍
hqwest的专栏
02-07 7490
PLC是在继电器控制路线基础上发展起来的,继电器控制线路有时间继电器、中间继电器等,而PLC内部也有类似的器件,由于这些器件以软件形似存在,故称为软元件。PLC程序由指令和软元件组成,指令的功能是发出命令,软元件是指令的执行对象,比如,SET为1指令,Y000是PLC的一种软元件(输出继电器),“SET Y000”就是命令PLC的输出继电器Y000的转台变为1。由此可见,编写PLC程序必须了解PLC的指令级软元件。软元件就是存储区软元件就是存储区软元件就是存储区。
C#上位机与台达PLC通信在Modbus TCP协议下的应用与实践
oZcXU3D的博客
09-14 1436
在此背景下,研究C#上位机与台达PLCModbus TCP协议下的通信方案具有深远意义。本文旨在探讨在C#环境下,使用Modbus TCP协议实现上位机与台达PLC通信的具体方法。本文基于真实的项目经验,详细阐述了在C#环境下,使用Modbus TCP协议实现上位机与台达PLC通信的具体方案。本项目的核心在于实现C#上位机与台达PLC的通信,同时结合Halcon视觉检测功能。台达PLC支持Modbus TCP协议,我们需要对其进行相应的设置,以便与上位机进行通信。四、Halcon视觉检测功能的实现。
Mqtt服务配置
qq_38836741的博客
09-29 2397
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议
modbus协议上位机代码编写
05-10
基于modbus协议编写上位控制机,从而实现控制下位机,下位机主要是从机!
VC实现上位机PLC之间通信
12-01
VC实现上位VC实现上位机PLC之间通信机与VC实现上位机PLC之间通信PLC之间通信
上位机与三菱PLC通信采集数据方法
12-14
上位机通过MX_Component或MX_Sheet与三菱PLC进行数据交互,采集PLC内指定数据并呈现出来!
上位机PLC通讯源码
12-16
上位机plc通讯源码,支持二次开发,源码包,C#形式,包含所有源码组件
C#上位机plc交互
最新发布
06-08
总的来说,使用C#和WinForms开发与PLC交互上位机系统,需要熟悉C#编程、WinForms设计以及PLC通信协议。通过这个项目,你可以深入学习到如何将理论知识应用于实际工业控制场景,提升你的编程和系统集成能力。
ModbusTCP与上位机通讯源码
11-07
Modbus TCP是一种基于TCP/IP协议栈的通信协议,被广泛应用于工业自动化领域,用于设备间的通信,例如PLC(可编程逻辑控制器)与上位机之间的数据交换。本主题主要探讨的是如何使用Modbus TCP协议在C#和C++语言中实现...
基恩士上位机TCP通讯协议.rar_PLC 协议_PLC通讯_基恩士tcp_基恩士tcpip_基恩士上位机TCP通讯协议
07-15
基恩士上位机TCP通讯协议是用于连接基恩士(Keyence)PLC上位机(如PC)的一种通信方法,它基于标准的TCP/IP协议栈,为用户提供了直接与PLC交换数据的途径,无需额外购买专门的通信软件。通过这种协议,开发者可以...
BMS基于Modbus协议上位机软件
05-15
2. **Modbus协议**:Modbus是最早的串行通信协议之一,支持ASCII、RTU和TCP/IP等多种传输模式,简单且通用,广泛应用于工业自动化设备,如PLC、变频器、仪表等。 3. **上位机软件**:在控制系统中,上位机通常指人...
上位机和松下plc modbus通信
07-28
上位机和松下PLC之间的Modbus通信是一种常用的工业通信协议Modbus是一种开放的通信协议,被广泛应用于工业自动化领域。上位机和松下PLC使用Modbus通信可以实现数据的交互和控制命令的传输。 在实施上位机和松下PLCModbus通信前,首先需要确认PLC的通信模块是否支持Modbus协议,并且需要设置PLC的通信参数,例如通信口的波特率、校验位等。通常情况下,PLC的通信模块上都会有相应的配置界面,可以通过该界面对通信参数进行设置。 接着,在上位机上需要安装相应的Modbus通信库或者驱动程序,用于与PLC进行通信。这些库或者驱动程序一般会提供API接口,可以方便地编写上位机的应用程序。 在编写上位机应用程序时,需要根据Modbus协议规定的数据帧格式,向PLC发送读写命令,并接收PLC的响应数据。例如,可以使用Modbus读保持寄存器的命令(功能码03)读取PLC的数据,或者使用Modbus写单个保持寄存器命令(功能码06)向PLC写入数据。 最后,上位机可以根据PLC的响应数据进行相应的处理,例如显示数据、存储数据或者发送控制命令。 需要注意的是,为了确保通信的稳定性和安全性,还需要注意通信的时序、重试机制、错误处理等方面的设计。 总之,上位机和松下PLC之间的Modbus通信是一种常用的工业通信方式,通过正确配置通信参数、选择适当的通信库和编写应用程序,可以实现数据的交互和控制命令的传输。
写文章

热门文章

  • 汇川中型PLC使用ST语言基础 39250
  • STM32单片机ESP8266发送数据到WiFi接收端代码实现 36092
  • 大学专业课真题(百度拷贝过来的) 18235
  • 树莓派开机自动运行某程序.md 11041
  • 恋恋有词-高频词汇 9269

分类专栏

  • C# 44篇
  • 数据库 8篇
  • 网站 18篇
  • AI 1篇
  • java 4篇
  • 通讯协议 8篇
  • 前端 8篇
  • c++ 2篇
  • qt 2篇
  • mysql 5篇
  • 笔记 4篇
  • opencv 5篇
  • 操作系统 10篇
  • 机器学习 3篇
  • 嵌入式 9篇
  • 工控 12篇
  • python 2篇

最新评论

  • C# 继承父类,base指定构造函数

    普通网友: 写的真好,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • CIP通讯介绍(欧姆龙PLC)

    花开莫与流年错_: 安装欧姆龙PLC后有调试软件,你再安装wireshark抓包就可以了

  • C#与欧姆龙PLC实现CIP通讯

    花开莫与流年错_: 这个安装欧姆龙PLC开发软件后再C盘有很多类似的文件,搜一下就可以了

  • CIP通讯介绍(欧姆龙PLC)

    bayonetta~: 我现在是想用多标签读取 你这篇文章里只写了单标签读取 所以我想联系您咨询一下

  • CIP通讯介绍(欧姆龙PLC)

    bayonetta~: 我用的是c++ 我主要想咨询一下报文格式 这个应该没啥区别吧 我用你这个报文也能读到数据

最新文章

  • C# Action和delegate区别及示例代码
  • C# 继承父类,base指定构造函数
  • SQLServer操作命令、备份还原、C#代码使用
2024年16篇
2023年35篇
2022年14篇
2021年2篇
2020年11篇
2019年6篇
2018年5篇
2017年5篇
2016年14篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王南沙公司网站优化推广教程高密网站如何做优化石家庄百度网站优化费用关键词优化排名对网站的影响厦门网站首页优化公司四川百度网站优化塔城网站优化推广优化网站静态资料加载速度浙江省优化营商环境网站邯郸网站整合营销推广优化爱站优化网站优化网站评估标准兰州网站哪里有优化许昌搜索引擎网站优化价格廊坊网站优化霸屏肥东网站排名优化公司天门本地网站优化公司电子网站优化怎么推五原网站seo优化上海公司网站优化定制方案网站标题优化可以写官网吗网站要如何进行优化兰州网站优化技巧题库网站怎么优化网站seo优化找谁专业深圳如何通过网站优化成功案例江干区网站推广优化价格安徽省网站优化排名网站结构优化方面如何优化网站别错过易速达香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化