Air さんのプロフィール叱吒红人フォトブログリスト ツール ヘルプ

ブログ


2009/10/30

Modbus之2

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

代码

功能

数据类型

01

02

03

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

04

整型、状态字、浮点型

05

06

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

08

N/A

重复回路反馈信息

15

16

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

17

字符型

Modbus之1

表1 Modbus功能表

功能码

名称

作用

01

读取线圈状态

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

02

读取输入状态

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

03

读取保持寄存器

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

04

读取输入寄存器

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

05

强置单线圈

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

06

预置单寄存器

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

07

读取异常状态

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

08

回送诊断校验

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

09

编程(只用于484

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

10

控询(只用于484

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

11

读取事件计数

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

12

读取通信事件记录

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

13

编程(184/384 484 584

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

14

探询(184/384 484 584

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

15

强置多线圈

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

16

预置多寄存器

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

17

报告从机标识

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

18

884MICRO 84

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

19

重置通信链路

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

20

读取通用参数(584L

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

21

写入通用参数(584L

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

2264

保留作扩展功能备用

 

6572

保留以备用户功能所用

留作用户功能的扩展编码

73119

非法功能

 

120127

保留

留作内部作用

128255

保留

用于异常应答

2009/07/16

关于DATA,XDATA,BDATA,IDATA,CODE的总结

空间名称
地址范围
说明
DATA
D:00H~7FH
片内RAM直接寻址区
BDATA
D:20H~2FH
片内RAM位寻址区
IDATA
I:00H~FFH
片内RAM间接寻址区
XDATA
X:0000H~FFFFH
64KB常规片外RAM数据区
HDATA
X:0000H~FFFFFFH
16MB扩展片外RAM数据区
CODE
C:0000H~FFFFH
64K常规片内外ROM代码区
HCONST(ECODE)
C:0000H~FFFFFFH
16MB扩展片外ROM常数区(对Dallas390可用作代码区)
BANK0~BANK31
B0:0000H~FFFFH
:
:
B31:0000H~FFFFH
分组代码区,最大可扩展32X64KB ROM
 
程序存储区
程序CODE 存储区是只读的他不能写程序存储区可能在8051CPU内或者在外部或者都有,根据8051派生的硬件决定
最多可以有64K字节的程序存储区程序代码
包括所有的函数和库保存在程序存储区,常数变量也是8051可执行程序只保存在程序存储区
在Cx51编译器中可用code存储区类型标识符来访问程序存储区

内部数据存储区
8051CPU内部的数据存储区是可读写的8051派生系列最多可有256字节的内部数据存储区
低128字节内部数据存储区可直接寻址;高128字节数据区从0x80到0xFF,只能间接寻址从20H开始的16字节可位寻址
因为可以用一个8位地址访问所以内部数据区访问很快然而内部数据区最多只有256字节

内部数据区可以分成三个不同的存储类型data idata 和bdata
data存储类型标识符通常指低128字节的内部数据区存储的变量直接寻址
idata存储类型标识符指内部的256个字节的存储区但是只能间接寻址速度比直接寻址慢
bdata存储类型标识符指内部可位寻址的16字节存储区20H到2FH 可以在本区域声明可位寻址的数据类型

外部数据存储区
外部数据区可读写访问外部数据区比内部数据区慢因为外部数据区是通过一个数据指针加载一个地址来间接访问的

几种8051系列增加片内XRAM 用和传统的外部数据区一样的指令访问这些空间用专用的SFR配置寄存器使能和外部空间重叠
外部数据区最多可有64K字节,当然这些地址不是必须用做存储区。
硬件设计可能把外围设备影射到存储区如果是这种情况程序可以访问外部数据区和控制外围设备,这可参考I/O的存储区影射
Cx51编译器提供两种不同的存储类型访问外部数据xdata和pdata
xdata存储类型标识符指外部数据区64K字节内的任何地址
pdata 存储类型标识符仅指一1 页或256 字节的外部数据区