win10视频文件信封格式左上角写什么有其对应格式的大字(如MP4、MKV)

  1、首先点击查看然后勾选攵件扩展名选项;

  2、右键点击重命名

  3、然后更改后缀名

  1、首先点击查看,然后勾选文件扩展名选项;

  2、右键点击重命名

  3、然后更改后缀名

修改文件后缀名(扩展名)是Windows系统下一项及其常用的操作如果还不知道怎么修改Win10的文件后缀名,怎么敢帮女神修电脑呢?为叻你的女神快来跟小编学学怎么改文件后缀吧。 1.打开桌面上的“这 ...

操作方法:1.打开要更改格式的图片文件2.点击菜单上的文件,选择另存为3.选择你要另为存的格式。4.选择保存路径保存完成。

不过对于改变比较大的Win10用户来说该如何修改文件后缀名(扩展名)呢?Win10文件后缀名(擴展名)修改指南 1.打开桌面上的“这台电脑”(只要开启文件资源管理器都可以),在查看选项卡勾选“文件扩展名”选项显示文件后缀2.右键點击要修改后缀名的文件,选择“重命名”3.选中点。后面的文本修改为新的后缀名,比如把...

首先打开资源管理器点击查看,勾选文件扩展名然后选择需要更改扩展名的文件,右键点击重命名像图片中那样把.txt更改为.jpg (txt记事本格式,jpg图片格式然后弹出警告窗口,点击昰即可

不过对于改变比较大的Win10用户来说,该如何修改文件后缀名(扩展名)呢Win10文件后缀名(扩展名)修改指南 1.打开桌面上的“这台电腦”(只要开启文件资源管理器都可以),在查看选项卡勾选“文件扩展名”选项显示文件后缀2.右键点击要修改后缀名的文件,选择“偅命名”3.选中点。后面的文本修改为新的后缀名,...

方法一:1.右击文件夹选择属性。2.在自定义选项卡中点击更改图标。3.选择列表中嘚图标或自主选择图标。4.点击确定完成。方法二:右键点击桌面—查看在里面设置大图标或中图标。方法三:按住Ctrl键调节鼠标滚輪。

有些用户喜欢用特定的文件夹图标来区分不同作用的文件夹这就需要掌握...下面我们看看在Win10系统下,该如何更改文件夹图标呢?操作方法 1.右击文件夹选择属性。2.在自定义选项卡中点击更改图标。3.选择列表中的图标或自主选择图标。4.点击确定完成。另外我们也能讓Win10文件夹显示文字图标,有兴趣的用户可以看看

windows10系统下如何更改文件格式 具体如下:1、首先点击查看,然后勾选文件扩展名选项;2、右击選择重命名;3、然后直接更改文件后缀名;...需要注意的是以上提供的批量修改文件后缀名只对修改有作用,文件每个后缀名代表的文件类型鈈同如果不同类型文件直接修改后缀名可能会导致文件打不开或者不兼容的问题。

Win8怎么改文件后缀之前,需要先显示文件后缀打开“计算机”,点击“查看”,然后选中“文件扩展名” 选中“文件扩展名”之后,所有文件的后缀都可以看见了。此时,“重命名”一个文件时,就可以任意的修改文件后缀了

Modbus协议是应用于电子控制器上的一種通用语言通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信它已经成为一通用工业标准。有叻它不同厂商生产的控制设备可以连成工业网络,进行集中监控

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何種网络进行通信的。它描述了一控制器请求访问其它设备的过程如果回应来自其它设备的请求,以及怎样侦测错误并记录它制定了消息域格局和内容的公共格式。

当在一Modbus网络上通信时此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息决定要產生何种行动。如果需要回应控制器将生成反馈信息并用Modbus协议发出。在其它网络上包含了Modbus协议的消息转换为在此网络上使用的帧或包結构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法

协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输首先,主计算机的信号寻址到一台唯一的终端设备(从机)然后,在相反嘚方向上终端设备发出的应答信号传输给主机 协议只允许在主计算机和终端设备之间,而不允许独立的设备之间的数据交换这就不会茬使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号

传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据嘚有限规则,以RTU模式在Modbus总线上进行通讯时信息中的每8位字节分成2个4位16进制的字符,每个信息必须连续传输下面定义了与Modebus 协议– RTU方式相兼嫆的传输方式

·   消息中的每个8位域都是一个两个十六进制字符组成

当信息帧到达终端设备时,它通过一个简单的“口”进入寻址到的设備该设备去掉数据帧的“信封”(数据头),读取数据如果没有错误,就执行数据所请求的任务然后,它将自己生成的数据加入到取得的“信封”中把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)发生任何错误都不会有成功的响应。

特注:Modbus信息帧所允许的最大长度为256个字节即N的范围是大于等于零且小于等于252(N{0,252})

即,所有的数据一共256个数据剩下253个。

信息帧地址域(信息地址)在帧的开始部分由8位组成,有效的从机设备地址范围0-247(十进制)各從机设备的寻址范围为1-247。主机把从机地址放入信息帧的地址区并向从机寻址。从机响应时把自己的地址放入响应信息的地址区,让主機识别已作出响应的从机地址

地址0广播地址,所有从机均能识别当Modbus协议用于高级网络时,则不允许广播或其它方式替代

  信息帧功能域代码告诉了被寻址到的终端执行何种功能。有效码范围1-225(十进制) 有些代码是适用于所有控制器,有些适应于某种控制器还有些保留鉯备后用。有关功能代替码的全部内容见附录A

当主机向从句发送信息时,功能代码向从机说明应执行的动作如读一组离散式线圈或输叺信号的ON/OFF状态,读一组寄存器的数据读从机的诊断状态,写线圈(或寄存器)允许下截、记录、确认从机内的程序等。当从机响应主機时功能代码可说明从机正常响应或出现错误(即不正常响应),正常响应时从句简单返回原始功能代码;不正常响应时,从机返回与原始代码相等效的一个码并把最高有效位设定为“1”。

如主机要求从机读一组保持寄存器时,则发送信息的功能码为:

若从机正确接收請求的动作信息后则返回相同的代码值作为正常响应。发现错时则返回一个不正常响信息:

从机对功能代码作为了修改,此外还把┅个特殊码放入响应信息的数据区中,告诉主机出现的错误类型和不正常响应的原因不正常响应见附录B。主机设备的应用程序负责处理鈈正常响应典型处理过程是主机把对信息的测试和诊断送给从机,并通知操作者表 1 – 1列出了所有设备常用的功能码、它们的意义及它們的初始功能。

表 1 – 1 常用功能码

取得一组逻辑线圈的当前状态(ON/OFF)

取得一组开关输入的当前状态(ON/OFF)

在一个或多个保持寄存器中取得当前的二进淛值

在一个或多个输入寄存器中取得当前的二进制值

强置一个逻辑线圈的通断状态

放置一个特定的二进制值到一个单寄存器中

取得8个内部線圈的通断状态

强置一串连续逻辑线圈的通断

放置一系列特定的二进制值到一系列多寄存器中

可使主机判断编址从机的类型及该从机运行指示灯的状态

数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据这些数据的内容可能是数值、参考地址或鍺极限值。他由数据区有2个16进制的数据位(2的8次方256)数据范围为00-FF(16进制)。例如:功能域码告诉终端读取一个寄存器数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同能力而有所不同若无错误出现,从机向主机的响应信息中包含了请求数据若有错误出现,则数据中有一个不正常代码使主机能判断并作出下一步的动作。数据区的长度可为“零”以表示某类信息

该域允许主机和终端检查传输过程中的错误。有时由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线蕗上可能会发生一些改变出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率出错校验使用了16位循环冗余的方法,即CRC校验

错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循環冗长检测方法得出的CRC域附加在消息的最后,添加时先是低字节然后是高字节故CRC的高位字节是发送消息的最后一个字节。

当消息在标准的Modbus系列网络传输时每个字符或字节按由左到右的次序方式发送:

最低有效位(LSB)...最高有效位(MSB)。

用户可以配置控制器是奇或偶校验或無校验。这将决定了每个字符中的奇偶校验位是如何设置的

如果指定了奇或偶校验,“1”的位数将算到每个字符的位数中(ASCII模式7个数据位RTU中8个数据位)。例如RTU字符帧中包含以下8个数据位:1 1 0 0 0 1 0 1

整个“1”的数目是4个如果便用了偶校验,帧的奇偶校验位将是0便得整个“1”的個数仍是4个。如果便用了奇校验帧的奇偶校验位将是1,便得整个“1”的个数是5个

如果没有指定奇偶校验位,传输时就没有校验位也鈈进行校验检测。代替一附加的停止位填充至要传输的字符帧中

RTU方式时,采用CRC方法计算错误校验码CRC校验传送的全部数据。它忽略信息Φ单个字符数据的奇偶校验方法

循环冗余校验(CRC)域占用两个字节,包含了一个16位的二进制值CRC值由传送设备计算出来,然后附加到数據帧上接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较如果这两个值不相等,就发生了错误

CRC开始时先把寄存器的16位全部置成“1”,然后把相邻2个8位字节的数据放入当前寄存器中,只有每个字符的8位数据用作产生CRC起始位,停止位和奇偶校验位不加箌CRC中

       在生成CRC时,每个8位字节与寄存器中的内容进行异或然后将结果向低位移位,高位则用“0”补充最低位(LSB)移出并检测,如果是1该寄存器就与一个预设的固定值进行一次异或运算,如果最低位为0不作任何处理。

       上述处理重复进行知道执行完了8次移位操作,当朂后一位(第8位)移完以后下一个8位字节与寄存器材的当前值进行异或运算,同样进行上述的另一个8次移位异或操作当数据帧中的所囿字节都作了处理,生成的最终值就是CRC值

生成一个CRC的流程为:

 如果最低位为1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。

CRC值附加箌信息时低位在先,高位在后查阅附录C中的一个实例,它详细说明了CRC的校验

       Modbus信息中的所有数据地址以零作为基准,各项数据的第一個数据地址的编号为0若无特殊说明在此节文中用+进制值表示,图中的数据区则用十六进制表示

图2--1为一个例子,说明了Modbus的查询信息圖2--2为正常响应的例子,这两例子中的数据均是16进制的也表示了以RTU方式构成数据帧的方法。

主机查询是读保持寄存器被请求的从机地址昰06,读取的数据来自地址40108保持寄有器注意,该信息规定了寄存器的起始地址为BH)

从机响应返回该功能代码,说明是正常响应字节数“Byle count”中说明有多少个8位字节被返回。它表明了附在数据区中8位字节的数量,当在缓冲区组织响应信息时“字节数”区域中的值应与该信息中數据区的字节数相等。如RTU方式时63H 用一个字节()发送。8个位为一个单位计算“字节数”它忽略了信息帧用组成的方法。

2.1  读取线圈状态(功能码01)

读取从机离散量输出口(DO,0X类型)的 ON/OFF 状态不支持广播。

查询信息规定了要读的起始线圈和线圈量线圈的起始地址为0000H,1-16个线圈的尋址地址分为0000H –0015H(DO1=0000HDO2=0001H,依此类推)

  响应信息中的各线圈的状态与数据区的每一位的值相对应,即每个DO占用一位(1 = ON, 0= OFF)第一个数据字节的LSB為查询中的寻址地址,其他的线圈按顺序在该字节中由低位向高位排列直至8个为止,下一个字节也是从低位向高位排例若返回的线圈數不是8的倍数,则在最后的数据字节中的剩余位至字节的最高位全部填0字节数区说明全部数据的字节数。

图2 – 4所示为线圈的输出状态响應的实例

图 2 – 4读取线圈状态----响应

2.2  读取输入状态(功能码02)

读取从机离散量输入信号(DI,0X类型)的ON/OFF状态,不支持广播

查询信息规定了要讀的输入起始地址,以及输入信号的数量输入的起始地址为0000H,1-16个输入口的地址分别为0-15(DO1=0000HDO2=0001H,依此类推)

图 2 – 5 的例子是从地址为17的从机讀取DI1到DI16的状态。

图 2 – 5读取输入状态----查询

OFF第一个数据字节的LSB为查询中的寻址地址,其他输入口按顺序在该字节中由低位向高位排列直至8個位为止。下一个字节中的8个输入位也是从低位到高位排列若返回的输入位数不是8的倍数,则在最后的数据字节中的剩余位直至字节的朂高位全部填零字节数区说明了全部数据的字节数。

图2 – 6 所示为读数字输出状态响应的实例

图 2 – 6读取输入状态----响应

2.3  读取保持寄存器(功能码03)

读取从机保持寄存器(4X类型)的二进制数据,不支持广播

查询信息规定了要读的保持寄存器起始地址及保持寄存器的数量,保持寄存器寻址起始地址为0000H寄存器1-16所对应的地址分别为0000H –0015H。

图 2 – 7读取保持寄存器----查询

响应信息中的寄存器数据为二进制数据每个寄存器分别对应2个字节,第一个字节为高位值数据第二个字节为低位数据。

图 2 – 8读取保持寄存器----响应

读取从机输入寄存器(3X类型)中的二进制数據不支持广播。

查询信息规定了要读的寄存器的起始地址及寄存器的数量寻止起始地址为0,寄存器1-16所对应的地址分别为0000H –0015H

图 2 – 9的例孓是请求17号从机的0009寄存器。

图 2 – 9读取输入寄存器----查询

响应信息中的寄存器数据为每个寄存器分别对应2个字节第一个字节为高位数据,第②个字节为低位数据

图 2 – 10的例子寄存器30009中的数据用000AH 2个字节表示。

图 2 – 10读取输入寄存器----响应

强制单个线圈(DO0X类型)为ON或OFF状态,广播时该功能可强制所有从机中同一类型的线圈均为ON或OFF状态。

该功能可越过控制器内存的保护状态和线圈的禁止状态线圈强制状态一直保持有效直臸下一个控制逻辑作用于线圈为止。控制逻辑中无线圈程序时则线圈处于强制状态。

查询信息规定了需要强制一个单独线圈的类型线圈的起始地址为0000H,1-16个线圈的寻址地址分为0000H –0015H(DO1=0000HDO2=0001H,依此类推)

由查询数据区中的一个常量,规定被请求线圈的ON/OFF状态 FF00H值请求线圈处于ON状態,0000H值请求线圈处于OFF状态其它值对线圈无效,不起作用

图示 2-11的例子是请求17号从机开DO1的On状态。

图2 – 12所示为对这个命令请求的正常响应是茬DO状态改变以后传送接收到的数据

2.6 预置单寄存器(功能码06)

把一个值预置到一个保持寄存器(4X类型)中,广播时该功能把值预置到所有从机的相同类型的寄存器中。

该功能可越过控制器的内存保护使寄存器中的预置值保持有效。只能由控制器的下一个逻辑信号来处悝该预置值若控制逻辑中无寄存器程序时,则寄存器中的值保持不变

图示 2-13预设单寄存器----查询

图2 – 14所示对于预置单寄存器请求的正常响應是在寄存器值改变以后将接收到的数据传送回去。

图示 2-14预设单寄存器----响应

2.7读取异常状态(功能码7)

读从中机中8个不正常状态线圈的数據某些线圈号已在不同型号的控制器中预定义,而其它的线圈由用户编程作为有关控制器的状态信息,如“machine ON/OFF”“heads retraced”,(缩回标题)“safeties satisfied”(安全性满意),“errorconditions”(存在错误条件)或其它用户定义的标志等该功能码不支持广播。

该功能代码为存取该类信息提供了一种简单的方法鈈正常线圈的类型是已知的(在功能代码中不需要线圈类型) 预定义的不正常线圈号如下:

图示 2-15读取异常状态----查询

正常响应包含 8 个不正常的线圈状态,为一个数据字节每个线圈一位。LSB对应为最低线圈类型的状态

图2 – 16所示按查询要求返回响应:

图示 2-16读取异常状态----响应

该例子中,线圈数据为 6DH (二进制)从左到右 (最高位至最低位) 的线圈状态分别为: OFF – ON – ON – OFF – ON –ON – OFF – ON。若控制器型号为 984这些位表示线圈 8 至 1 的状态;若控制器型号为 484 则表示线圈 264 至 257 的状态。

2.8 强置多线圈(功能码15)

按线圈的顺序把各线圈 (DO0X 类型) 强制成 ON 或 OFF。广播时该功能代码可对各从机中相同類型的线圈起强制作用。

该功能代码可越过内存保护和线圈的禁止状态线圈保持强制状态有效,并只能由控制器的下一个逻辑来处理若无线圈控制逻辑程序时,线圈将保持强制状态

查询信息规定了被强制线圈的类型,线圈的起始地址为0000H1-16个线圈的寻址地址分为0000H –0015H(DO1=0000H,DO2=0001H依此类推)。

查询数据区规定了被请求线圈的 ON/OFF 状态如数据区的某位值为“1”表示请求的相应线圈状态为ON,位值为“0”则为OFF状态。

图礻 2-17例子为请求从机设备 17 中一组 10 个线圈为强制状态起始线圈为 20 (则寻址地址为 19 或 13H),查询的数据为 2 个字节CD01H (二进制 0 0001) 相应线圈的二进制位排列如丅:

传送的第一个字节 CDH 对应线圈为 27-20,  LSB 对应线圈 20,传送的第二个字节为 01H对应的线圈为 29-28, LSB 为继圈 28其余未使用的位均填“0”。

正常响应返回从機地址功能代码,起始地址以及强制线圈数

图2 – 18对上述查询返回的响应。

2.9预置多寄存器(功能码16)

把数据按顺序预置到各 (4X类型) 寄存器中广播时该功能代码可把数据预置到全部从机中的相同类型的寄存器中。

该功能代码可越过控制器的内存保护在寄存器中的预置值┅直保持有效,只能由控制器的下一个逻辑来处理寄存器的内容控制逻辑中无该寄存器程序时,则寄存器中的值保持不变

图示 2-19预设多寄存器----查询

图2 – 20所示对于预置单寄存器请求的正常响应是在寄存器值改变以后将接收到的数据传送回去。

图示 2-20预设多寄存器----响应

2.10报告从機标识(功能码17)

返回一个从机地址控制器的类型从机的当前状态,以及有关从机的其他说明不支持广播。

图示 2-21报告从机标识----查询

图2 – 22所示正常响应格式数据内容对应每台控制器的类型。

图示 2-22报告从机标识----响应

数据区第一个字节为 Modicon 控制器返回的从机 ID

特注:详细信息见Modbus協议英文版或中文版

附录A:MODBUS全部功能码

ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线蕗连接而成其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控下表3--1是ModBus的功能码定义。

取得一组逻辑线圈的当湔状态(ON/OFF)

取得一组开关输入的当前状态(ON/OFF)

在一个或多个保持寄存器中取得当前的二进制值

在一个或多个输入寄存器中取得当前的二进制值

強置一个逻辑线圈的通断状态

把具体二进值装入一个保持寄存器

取得8个内部线圈的通断状态这8个线圈的地址由控制器决定,用户逻辑可鉯将这些线圈定义以说明从机状态,短报文适宜于迅速读取状态

把诊断校验报文送从机以对通信处理进行评鉴

使主机模拟编程器作用,修改PC从机逻辑

可使主机与一台正在执行长程序任务从机通信探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后本功能码才发送

可使主机发出单询问,并随即判定操作是否成功尤其是该命令或其他应答产生通信错误时

可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成记录会给出有关错误

可使主机模拟编程器功能修改PC从机逻辑

可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作仅在含有功能13的报文发送后,本功能码才得发送

强置一串连续逻辑线圈的通断

把具体的二进制徝装入一串连续的保持寄存器

可使主机判断编址从机的类型及该从机运行指示灯的状态

可使主机模拟编程功能修改PC状态逻辑

发生非可修妀错误后,是从机复位于已知状态可重置顺序字节

读取通用参数(584L)

显示扩展存储器文件中的数据信息

写入通用参数(584L)

把通用参数写叺扩展存储文件,或修改之

留作用户功能的扩展编码

ModBus网络只是一个主机所有通信都由他发出。网络可支持247个之多的远程从属控制器但實际所支持的从机数要由所用通信设备决定。采用这个系统各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。表3--2是ModBus各功能码對应的数据类型

表3--2 ModBus功能码与数据类型对应表

整型、字符型、状态字、浮点型

整型、字符型、状态字、浮点型

整型、字符型、状态字、浮點型

除广播外,主机向从机设备发送查询并希望有一个正常响应主机查询中有可能产生4种事件:

¨  从机接收查询,通讯错误正常处理信息则返回一个正常响应事件。

¨  由于通讯出错从机不能接收查询数据,因而不返回响应此时,主机依靠处理程序给出查询超时事件

¨  若从机接收查询,发现有 (LRC或CRC) 通讯错误并返回响应,此时依靠主机处理程序给出查询超时事件。

¨  从机接收查询无通讯错误,但無法处理(如读不存在的线圈和寄存器)时向主机报告错误的性质。

不正常响应信息有2个与正常响应不相同的区域:

功能代码区:正常响应時从机的响应功能代码区,带原查询的功能代码所有功能代码的MSB为0(其值低于80H)。不正常响应时从机把功能代码的MSB置为1,使功能代码值夶于80H高于正常响应的值。这样主机应用程序能识别不正常响应事件,能检查不正常代码的数据区

数据区:正常响应中,数据区含有(按查询要求给出的) 数据或统计值在不正常响应中,数据区为一个不正常代码它说明从机产生不正常响应的条件和原因。

例:主机发出查询从机不正常响应。(为十六进制数据)

响应(不正常或例外):

图 3 – 1 . 不正常信息帧格式

上例中,从机设备地址10(0AH)读线圈状态的功能代码(01),主机请求线圈状态的地址为H)注意:只读一个指定线圈,地址为(0001).

若从机中不存在此线圈地址时即以不正常代码(02),向主机返回一個不正常响应说明为不合法地址。

从机接收的是一种不能执行功能代码发出查询命令后,该代码指示无程序功能

接收的数据地址,昰从机不允许的地址

查询数据区的值是从机不允许的值。

从机执行主机请求的动作时出现不可恢复的错误

从机已接收请求处理数据,泹需要较长的处理时间为避免主机出现超时错误而发送该确认响应。主机以此再发送一个“查询程序完成”未决定从机是否已完成处理

从机正忙于处理一个长时程序命令,请求主机在从机空闲时发送信息

从机不能执行查询要求的程序功能时,该代码使用十进制13或14代码向主机返回一个“不成功的编程请求”信息。主机应请求诊断从机的错误信息

从机读扩展内存中的数据时,发现有奇偶校验错误主機按从机的要求重新发送数据请求。

离散量输出口(0X类型)状态

离散量输入信号(0X类型)状态

输入寄存器(3X类型)数据

强制单个线圈(0X类型)状态

保持寄存器(4X类型)

强制各线圈 (0X 类型)状态

保持寄存器(4X类型)

扩展寄存器(6X类型)

扩展寄存器(6X类型)

掩码写入4X类型寄存器

保持寄存器(4X类型)

保持寄存器(4X类型)

保持寄存器(4X类型)

//思路:先把所有数放到set中然后遍历num数组,每一个元素都加加减减挨着找就OK

我要回帖

更多关于 信封格式左上角写什么 的文章

 

随机推荐