台达plc寄存器

台达plc寄存器
台达plc寄存器

台达plc的寄存器名称用高位地址来区别如

PROFIBUS-DP 转MODBUS RTU/ASCII 协议产品介绍

简介

通科技有限公司开发出的DDMC2PF1(DDMC2PF2)产品支持将PROFIBUS-DP从站设备中PIW、PQW映射为DBUS RTU/ASCII中的读(1号)写(15号)多个线圈(0xxxx)命令、写(5号)单个线圈(0xxxx)命

读输入继电器2号(1xxxx)命令、读(4号)输入寄存器(3xxxx)命令、读(3号)写(16号)多个保持存器(4xxxx),写(6号)单个保持寄存器(4xxxx),可满足大多数MODBUS设备与PROFIBUS交换数据。要技术参数:

MC2PF1与DDMC2PF2主要区别:DDMC2PF1全部采用端子连接方式,而DDMC2PF2的Profibus

为DB9针总线接口并扩展有4线端子连接口,其他并无区别!

主要技术参数

通讯口1连接模式:标准 PROFIBUS-DP从站模式(采用西门子专用ASIC芯片);

讯速度为9600 Bps~6 MBps自动适应;

PROFIBUS网络中允许连接126个DDMC2PF1模块,通过拨码开关设置。

模块固定站用48个PIW远程输入寄存器和48个PQW远程输出寄存器!

别提醒:第48个PIW被固定设置为:PIBxxH的8个位从低到高分别表示为1~8#MODBUS

备的通讯超时标志位,当对应位为1,则表示该设备通讯出现超时故障;

BxxL的8个位从低到高分别表示为1~8#MODBUS设备的通讯应答非法标志位,当对应位为1,则表

该设备通讯出现非法操作故障!

DDMC2PF2中某个设备号仅写入1个保持寄存器时,则DDMC2PF1则按6号命令写单个保持寄存器!

写单个线圈,则自动为5号命令(Profibus中仍然占1个PQW字,当需要该线圈通,PQW必须写入大

1的任何数据,断开必须写0)。

果写保持寄存器数目超过1个,则自动按16号命令完成多个寄存器写入命令。

通讯口2连接模式:标准 RS-485 MODBUS RTU/ASCII 主、从站模式可选;

讯速度为9600 Bps~115200 Bps,用户参数软件设置方式;

站模式:

每个DDMC2PF2可连接8个不同的从MODBUS 地址,每个设备地址最多可读或者写一种MODBUS设备的个寄存器,累计不超过48字输入和48字输出寄存器,对1个站超过8个字数据读写可分两次进行。MODBUS站地址相应减少一个,例如:

站地址为02H的维博WB电量传感器共计12个参数传入PROFIBUS寄存器PIWxx中,可将MODBUS设备1#地址设置为02H并读6个字数据,然后再将MODBUS设备2#的站地址设置仍然为02H并读6个字数据,

样就可以读取12个寄存器数据!

站模式:

每个DDMC2PF1可作为MODBUS主设备(例如计算机、DCS系统)的从站,支持主设备03#读命令和#写命令,可读Profibus 网络的PQWxx计48字输出和向PIWxx47个字的写操作。

工作电源:DC 24V;

隔离方式:双通讯回路光电隔电压1000V;

设置方式:拨码开关手动设站地址和用户参数软件组态设置交换寄存器、数目、通讯速率;

主站支持:西门子S7-300 S7-400系列PLC主站或CP5412、CP5611、CP5613 PROFIBUS主站卡等;

应用特点

通讯协议转换模块可将标准MODBUS现场设备(包括各种支持MODBUS设备的仪器、仪表、传感

、变频器)连接到PROFIBUS-DP网络中,将MODBUS设备映射(相当于)为PROFIBUS-DP的一个从

设备,以达到不同网络设备的数据交换。

扩展西门子S7-300、400 PLC I/O:

于支持PROFIBUS的可编程逻辑控制器(例如西门子S7系列PLC),经本模块可连接第三方设

,完成PLC等系统的模拟量、开关量扩展。

DDMF2-8AD、DDMF2-8DA标准模拟量输入/出模块:低成本扩展PLC的模拟量通道;

DDMF2-8ADP、DDMF2-8ADK热电阻、热电偶模块:低成本扩展PLC的温度采集通道;

DDMF2-16DI、DDMF2-16DO开关量输入输出模块:低成本扩展PLC的开关量输入、输出通道;

个DDMC2PF1可最多扩展8个DDMF2系列模块,在PROFIBUS中转换为标准远程输入PIWxx、输出PQWxx 直接使用。

将支持MODBUS的不同厂家设备连接到PROFIBUS网络中:

控、仪表设备厂家的多种仪表、传感器设备经DDMC2PF2可连接到PROFIBUS网络中,通过

OFIBUS网络直接读取数据、输出控制数据到相应MODBUS设备上。实际使用中,这些设备就相

于是PROFIBUS的远程设备,无需额外编程,例如S7-300 PLC:要获取某种仪表的数据40000,

需要将该设备映射为PROFIBUS设备中的PIW0,则PLC程序中PIW0即等效于40000保持寄存器。

样,要写某种仪表的数据到40001,只需要将该设备映射为PROFIBUS设备中的PQW2,则在PLC

写入PQW2数据为1234H,则MODBUS设备中40001数据即变为1234H。

将不同厂家的变频器、软启动器连接到PROFIBUS网络中:

种方式在很多工程中都会遇到,例如:

水厂(或其他可能使用到变频器的设备),系统控制设备为由PROFIBUS网络连接的西门子

-300 PLC而变频器采用ABB的ACS600共4台。

系统设计为经西门子模拟量输出模块连接到变频器的模拟量输入AI1上作为变频器转速给定。

拟量输出AO1作为变频器的转速输出并连接到西门子S7-300 PLC的模拟量输入作为实际转速监视。用DDMC2PF1后经MODBUS连接4台ACS600到PROFIBUS,4台变频器输入分别映射到PLC的PIW0、

W2、PIW4、PIW6,输出分别映射到PLC的PQW2、PQW4、PQW6、PQW8,因此在PLC中即可十分方便的

行相应处理。

B变频器的控制字简介如下:

细信息和使用方式参见相应变频器资料!

了获取更多信息或者控制更多寄存器,你可映射该MODBUS设备中的连续几个寄存器到PLC

(包括控制字)便于完成更多的控制功能,不但节约购买模拟量模块成本,提高精度,完善

功能也是采用普通模拟量输入、输出无法达到的!

统构成参见下图所示!

将符合MODBUS协议的PLC连接到PROFIBUS网络中:

、使用方法:

方法可将符合MODBUS协议的多种PLC(例如莫迪康、台达等)方便连接至Profibus dp网络上!

台达PLC DVP系列,举例如下:

达PLC具备RS-485通讯口,符合MODBUS ASCII协议,小型DVP系列的PLC RS-485固定为9600Bps,位停止位,7位数据位、偶校验,因此,必须在PROFIBUS DP 网络用户参数配置为MODBUS ASCII模

,通讯参数为9600Bps、1、7、E。

于台达DVP系列PLC按照内部寄存器地址划分PLC的各种寄存器,因此,必须按照相应PLC内部寄

器地址和命令设置高位寄存器地址和命令。DVP系列PLC内部寄存器分类如下:

1:用户参数MODBUS设备地址指DDMC2PF2用户参数中对应的下拉列表中的选择参数;

2:P由于DVP PLC按0~255作为一个页面寻址,而DDMC2PF2限制每区域的连续寻址

量不超过49个,因此,交换的数据区最好安排在地址为0~48范围内,如果超过则可

过MODBUS高为地址选择另外的一个页面相同的寄存器作为寻址中,举例:

MC2PF2可扩展寻址:

46~S294:MODBUS高位地址选择01H,总计不超过768个位;

12~S560:MODBUS高位地址选择02H,总计不超过768个位;

68~S816:MODBUS高位地址选择02H,总计不超过768个位;

46~M294:MODBUS高位地址选择09H,总计不超过768个位;

12~M560:MODBUS高位地址选择0AH,总计不超过768个位;

68~M816:MODBUS高位地址选择0BH,总计不超过768个位;

024~M1072:MODBUS高位地址选择0CH,总计不超过768个位;

46~D294:MODBUS高位地址选择10H,总计不超过48个字;

12~D560:MODBUS高位地址选择11H,总计不超过48个字;

68~D816:MODBUS高位地址选择12H,总计不超过48个字;

024~D1072:MODBUS高位地址选择13H,总计不超过48个字;

用DDMC2PF2后经MODBUS连接8个MODBUS设备号,设备号是唯一的,但MODBUS地址则

以是不唯一的!

此,连接8台DVP PLC到PROFIBUS,每台PLC只允许交换1种寄存器并使用单一命令;

接4台DVP PLC到PROFIBUS,每台PLC只允许交换2种寄存器并使用单一命令或者连接

台DVP PLC到PROFIBUS,每台PLC只允许交换1种寄存器但可使用读写命令;………………

果连接1台PLC,则允许交换8种寄存器的单一命令或者4种寄存器的读、写命令;

、通讯故障检测:

MC2PF2设有通讯故障功能介绍,现介绍如下:

与PROFIBUS网络交换远程输入字中最多可交换48个PIW,但用户实际只能使用47

PIW作为交换寄存器。系统划分出最后一个PIW作为通讯故障检测并可在所有的PROFIBUS 站中获取。

例如下:如果系统组态PIW0作为DDMC2PF1的第1个远程输入字,则PIW94则被系

固定占用为系统通讯检测用寄存器,定义如下:

W94对应PIB94和PIB95,下表按位表示:

此,假如你需要关心通讯的稳定性和可靠性,则可以将该寄存器引入至PROFIBUS主站中作报警处理或者在PLC程序中将对应的位常闭点串接后传输至MWxxx寄存器然后再使用。

高位地址设置方式(适用于Ver 2以下的模块和GSD文档):

些MODBUS 设备读写寄存器范围很宽,因此,当超过常规寄存器范围读写要求就必须配合MODBUS 高位地址进

选择。当MODBUS寄存器范围在0~95范围以内(包括0xxxx~4xxxx寄存器),对应MODBUS选择器的高位地址须为0;当MODBUS寄存器超过0~95,则必须设置MODBUS 高位地址,对于40095~410239范围MODBUS寄存器选可直接使用用户参数列表中的低位(0~ 3)+( 96~99 )~"低位(0~63)+(10176~10239)"选择,即:

确寄存器范围在该可选择范围内,然后使用40001~40095作为0~95的次选项+第1个选择范围数值进行定位:如:当读40098寄存器,则“1# MODBUS 高位地址”选择 "低位(0~ 3)+( 96~99 )",表示了所读写范围96~99之间,因此,低位+96=40098可选择低位在"40002 保持寄存器(3/16 读写命令)"即可满足读写40098 存器。

表2)

:当寄存器范围超过10239,例如410239,则必须配合高位地址的16进制方式设置(见表2中第5例所述);MODBUS寄存器超过10239,则必须按16进制方式选择MODBUS 高位地址,例如表2中例5所示:对于418177~8179范围MODBUS寄存器范围选择,首先将寄存器范围转换为16进制数据-1。

寄存器的高、低位地址设置方式(适用于Ver 3以上的模块和GSD文档):

些MODBUS 设备读写寄存器范围很宽,因此,V3版改进了寄存器寄存器地址选择方式――增加高低位地址选择方式而可在0~65535范围内任意选择寄存器地址:

进制方式计算方式:寄存器绝对地址=高位×256+低位-1

六进制方式计算方式:寄存器绝对地址=高位×0x100+低位-1

般将需要设置的寄存器地址转换为16进制后,取出高8位作为高位地址设置,低8位需要减一后作为低位设置。例说明(按十六进制表示):

001线圈转换为16进制为00 01H,故高位=00H,低位为01H并减1,低位=00H;

866线圈转换为16进制为26 8AH,故高位=26H,低位为8AH并减1,低位=89H;

989保持寄存器转换为16进制为27 05H,故高位=27H,低位为05H并减1,低位=04H;

● MODBUS设备地址设置方式:

MC2PF2共有8个设备号,经MODBUS可连接8个不同的MODBUS设备地址,设备号是唯一的,每使用一次就会减少个MODBUS设备地址(或功能)的连接,但MODBUS地址范围则可以支持0~64个!

果每个MODBUS设备号设置为相同的MODBUS设备地址,则DDMC2PF2最多可与Profibus网络交换47个输入字或个输出字,并可使用8次不同的MODBUS命令。

果对每个MODBUS设备地址既读又写则至少需要2个设备号配合,也减少2个设备号;

果对每个MODBUS设备地址使用相同命令但寄存器范围又特别分散,不在连续的8个设备范围内,则您仍然需

多使用1个设备号;

DBUS设备地址一般选择范围位0~64,超过此范围,DDMC2PF2仍然能选择,但必须进入到用户参数16进制范

进行手动设置,例如原设置设备号1――――>01H,在用户16进字参数表的第1行为01,02,03,04,05,06,07, ,将01改为F0则表示1#MODBUS的设备地址为240。

一步一步教你使用DDMC2PF2 PROFIBUS 模块

要介绍采用西门子S7-300或者S7-400 PLC构成现场总线系统:

● 系统最简配置:

7-315-2DP CPU一套,也可选用S7-31x+CP342-5构成PROFIBUS DP主站;

MF2系列模块若干,例如DDMF2-8ADP热电阻温度采集模块、DDMF2-8DA模拟量输出模块、

M4A2 MODBUS数据显示表,ABB变频器一台;

计算机RS-232串口转MPI的ADP适配器一套,也可使用CP5611编程卡插入计算机

I插槽,但价格较贵;

软件安装:

安装西门子Setp 7编程软件;

果你是台式计算机,需要通过计算机长期监控PLC或者有较多的“银子”,可考虑购买一

CP5611或者CP5613,并安装到计算机PCI插槽中,然后安装SINEC软件,以支持CP5611卡。

如果你是台式计算机,且“银子”不宽裕,可考虑购买一根S7-MIP电缆,经计算机的串口

M1连接到S7-300 CPU的编程口,经MPI口配置S7-300系统硬件、PROFIBUS网络、编程、并下载

调试用;

如果你是笔记本电脑,且只有USB而没有串口,可考虑购买一根S7-MIP电缆和

M-USB/RS232,经计算机的串口COM1连接到S7-300 CPU的编程口,经MPI口配置S7-300系统硬、PROFIBUS网络、编程、并下载、调试用;

用S7-MIP电缆可以用最低的成本玩玩PROFIBUS现场总线,当然你也可以开发出PLC相关

品,测试功能也不弱!除安装西门子Setp 7编程软件外无需安装其他软件了!

软件操作:

击桌面Setp 7软件图标后进入以下界面:

Next 进入下一步!

们可选择S7-300系列中自带PROFIBUS-DP的CPU,S7-315-2DP,按Next 进入下一步!

加OB1、OB82、OB100、OB122程序块,注意,使用PROFIBUS必须要添加这些程序块,论你使用否!按Next 进入下一步!

入工程文件名,例如,此处输入TEST,按Finsh 完成工程项目的定制工作。

了正确使用PROFIBUS网络,还必须在程序文件中加入FB20功能块,使用鼠标右键弹出上菜单,选择插入新对象:

可以在“SIMATIC Manager”界面中按“New Project/Library”建立新工程。

入新建立的工程文件名,例如TEST1。

下面的界面下,使用鼠标右键弹出菜单,选择插入新对象为SIMATIC 300 Station!

已生成的工程下,选择Hardware并双击进入硬件配置界面中。

添加PLC机夹UR,然后添加CPU 315-2DP和其他模块,双击机夹中2槽的X2 DP行,置PROFIBUS的站地址例如为02H,然后设置PROFIBUS-DP的网络通讯速度,此处暂设1.5 MBps。

安装GSD文件:

由于捷通科技的DDMF5系列产品完全兼容其他PROFIBUS总线,故它可以象西门子等其他公

司的PROFIBUS产品一样使用,唯一需要的是安装GSD文件到Step 7软件中,这可在SIMATIC nager下的Hardware界面中安装。方法如下:

Hardware界面中,选择Options -> Install New GSD;

开Jt_gsd文件夹,选择要安装的模块所对应的文件后即可安装,目前,最新的文档为C2PF2_V3.GSD。

了在Setp 7 编程界面中显示DDMF5现场模块图形,你需要拷贝DDMF5位图到Step 7安装录下的S7data\nsbmp目录下!

配置硬件:

入Additional Field Devices选择I/O下的DDMC2PF1,拖动DDMC2PF2到PROFIBUS网络上,

击对应模块设置该模块在PROFIBUS网络下的从站地址,例如3,可以添加最多至125个类似

块,当然,也可添加其他类型的模块或者其他公司的模块。

MC2PF2所占用的远程输入、输出寄存器必须要加上系统已使用的寄存器地址号,即:

MC2PF2远程输入寄存器地址=系统已分配的输入地址号(包括本体上的输入地址)+PIW设置起始地址号;MC2PF2远程输出寄存器地址=系统已分配的输出地址号(包括本体上的输出地址)+PQW设置起始地址号;例中系统系统已分配的输入、输出地址号均为0,故:

改配置表中的I Address从0开始,由此可见,PIW0~PIW96固定为48个远程字输入;

改配置表中的Q Address从0开始,由此可见,PQW2~PIW98固定为48个远程字输出;

要注意:使用了该范围的PIW、PQW后则其他PROFIBUS设备的地址就不能再使用它了!

MC2PF2内部用户参数设置可通过Step 7的友好界面设置,参见下图示意。你可设置连接多

个MODBUS设备及相应地址,也可设置将MODBUS何种寄存器映射到PROFIBUS网络中的远程字输

或者是输出!另外,DDMC2PF1还可设置MODBUS主设备(RTU/ASIC)和从设备(RTU/ASIC)工作式。

DBUS主设备(RTU/ASIC):

合将MODBUS从设备连接到Profibus网络上,例如,传统仪器、仪表、传感器和其他MODBUS设备;DBUS从设备(RTU/ASIC):

合将DCS系统、计算机组态软件、其他MODBUS主设备连接到Profibus网络上。

以下为MODBUS主设备(RTU/ASIC)操作:

意:读PIW数目和PQW数目必须对应添写,同时,PIW只能对应MODBUS的1xxxx、3xxxx、4xxxxx 存器,PQW只能对应选择0xxxx、4xxxx输出寄存器,否则DDMC2PF2将无法正常工作。

果你需要在1个设备地址中获取更多的MODBUS寄存器到PROFIBUS网络中,你可组态本

数,让DDMC2PF2读取的1#~8#地址重复使用,然后在对应1#~8#设备选择项目中选择

同的寄存器,例如:1#MODBUS 地址01中要获取3xxxx寄存器4个、4xxxx寄存器2个、输

到4xxxx寄存器5个,则可选择1#~3#MODBUS地址选择均为01/01H(01表示十进制1、

H表示十六进制01),然后在1#MODBUS选择为3xxxx输入寄存器,1#POROFIBUS的PIW数

为4,2#MODBUS选择为4xxxx保持寄存器,2#POROFIBUS的在PIW数目为2,同样,3#DBUS选择为4xxxx保持寄存器,3#POROFIBUS的PQW数目为5即可。

● 特殊设置:

果你连接的是MODBUS ASCII设备,在网络组态中必须改为MODBUS ASCII方式(配置参数默

是RTU模式),同时,应将通讯参数设置为7位数据位、偶校验。

果你选择台达PLC作为MODBUS ASCII设备,必须根据台达PLC的内部寄存器地址对应选择

应的MODBUS命令(寄存器名)和高位地址,然后再下载到PROFIBUS主站中,稍后我们将

细介绍如何将台达PLC连接到PROFIBUS网络上!

别注意:

OFIBUS 远程寄存器的地址排号必须与PROFIBUS的系统地址相配合设置:

果PROFIBUS中其他设备中使用了PIWx和PQWx,则DDMC2PF1的起始地址应加上系统寄存器地址,即DDMC2PF1应加上系统PIW或PQW的偏移量!

例如下:

架上设备地址已占用PIW0、PIW2、PQW0、PQW2、PQW4,则DDMC2PF2所占用的首地址应分别从W2+2=PIW4开始,同理,PQW则从PQW4+2=PQW6开始!

● Setp 7 程序处理:

在PROFIBUS现场总线网络中,DDMC2PF1模块,使用它们并不占用PLC本体模块点数,与

通常的PROFIBUS设备相同,开关量均按字方式使用,而不能直接使用位,例如本例中:

W6表示从PROFIBUS网络中读16个位即一个字输入状态,PQW6表示从PROFIBUS网络中写16 位或者1个字数据状态。如果需要使用位方式,可将PIW6传送到MWx然后再使用Mx.0~Mx.7 方式使用位,相当于PLC的Ix.0~Ix.7。

以下为MODBUS从设备(RTU/ASIC)操作:

下图设置DDMC2PF2工作于MODBUS 从设备状态下并下载到Profibus主站内。

台达PLC通讯协议

台达PLC通讯协议V1.12 通讯接口RS-232C RS-485 2. 通讯协议ASCII 模式, 9600(传输速率), 偶同位, 1 个起始位, 1 个停止位 9600,7,e,1 3. 通讯资料格式 STX 起始字符‘:’(3AH) ADR 1 通讯地址: ADR 0 8-bit 地址包含了2 个ASCII 码 CMD 1 命令码: CMD 0 8-bit 命令包含了2 个ASCII 码 DATA(0)资料内容: DATA(1)n个8-bit 资料包含了2n 个ASCII 码 ………. n <=74 个ASCII 码 DATA(n-1) LRC CHK 1 侦误值: LRC CHK 0 8-bit 侦误值包含了2 个ASCII 码 END 1 结束字符: END 0 END 1 = CR(0DH),END 0 = LF(0AH) ADR(通讯地址) PLC 通讯地址出厂设定值为0x01,因此(ADR 1, ADR 0)=’0’,’1’ ’0’=30H, ‘1’= 31H LRC CHK(侦误值)CMD(命令指令)及DATA(数据字符) LRC CHK(侦误值) 侦错方式采用LRC(Longitudinal Redundancy Check)侦误值。LRC 侦误值乃是将ADR1 至最后

一个资料内容加总,将该值取2 补码(2’s Compl ement)得到之结果即为LRC 侦误值。附录-3 例: STX ‘:’ ADR 1 ‘0’ ADR 0 ‘1’ CMD 1 ‘0’ CMD 0 ‘3’ 起始资料地址‘0’ ‘4’ ‘0’ ‘1’ 资料数‘0’ ‘0’ ‘0’ ‘1’ LRC CHK 1 ‘F’ LRC CHK 0 ‘6’ END 1 CR END 0 LF 01H+03H+04H+01H+00+01H = 0AH 0AH 的2 补码为F6H 注1 2 补码的求法:(1 补码再加1) 0A(H)= 0000 1010(B)先取1 补码(将b0~b7 反相)得1111 0101(B),再加1 为1111 0110

MCS-51系列特殊功能寄存器

MCS-51系列特殊功能寄存器(80H~FFH) 1.P0 (80H) 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八位(82H) DPH 数据指针高八位(83H) 4.PCON 电源管理寄存器(87H) SMOD :波特率倍增位。SMOD=0时,不变;SMOD=1时,倍增。 GF1,GF0 :通用标志位。 PD :掉电方式位。PD=1时,进入掉电方式。 IDL :待机方式位。IDL=1时,进入待机方式。 5.TMOD 定时/记数方式寄存器(89H) GATE :门控位。GATE=0时,直接由TR启动定时器;GATE=1时,须外部INT为1时,且TR启动定时器。 C/T :功能选择位。C/T=0时,为定时器;C/T=1时,为计数器。 M1,M0 :方式选择位。

6.T CON 定时/记数控制寄存器(88H) TF1 :定时器1溢出标志。由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。 TR1 :定时器运行控制位。TR1=0时,关闭T1;TR1=1时,启动T1。 TF0 :定时器0溢出标志。由硬件置1,并且进入中断;进入中断服务程序后,由硬件清0,查询方式下由软件清0。 TR0 :定时器运行控制位。TR0=0时,关闭T0;TR0=1时,启动T0。 IE1 :外部中断1请求标志。 IT1 :外部中断1触发方式。IT1=0时,为低电平触发方式;IT1=1时,为负跳变触发方式(边沿触发)。 IE0 :外部中断0请求标志。 IT0 :外部中断0触发方式。IT0=0时,为低电平触发方式;IT0=1时,为负跳变触发方式(边沿触发)。 7.P1 (90H) SM0,SM1 :串行方式控制。 SM2 :多机通讯控制位。SM2=0时,禁止多机通讯;SM2=1时,允许多机通讯。

台达PLC串行通讯及应用案例

浅析台达PLC串行通讯及应用案例 摘要:本文介绍串行通讯的基本概念,台达PLC的串行通迅功能及在项目中实际应用案例,主要讨论如何使用台达PLC完善的通讯功能完成各种实际应用,体现了台达PLC强大的 通讯功能及其便利性。 关键词:串行通讯、PLC、RS485、MODBUS协议、变频器、自由口通讯、EASY LINK 一、前言 随着计算器技术的发展,通讯传输在工业自动化控制领域得到越来越广泛的应用,由于串行通讯方式具有使用线路少、成本低、简单易用,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。现在各PLC生产厂家都极其重视通讯在PLC推广中的应用,并且各具有优势特点,合理利用通讯功能将极大的降低控制成本,提高产品竞争力。 二、串行通讯简介 通讯即是不同的设备通过线路互相交换数据,其主要目的在于将数据从某端传送到另一端,实现数据的交换。通常有并行和串行两种方式,由于并行传输方式在数据电压传送的过程中容易因线路的因素而使得电压准位发生变化(衰减、线路互相干扰),而串行通讯方式则能很好的解决这些问题,因此在工业应用中绝大多数使用串行通讯。 串行通讯的接口方式分为RS-232和RS-485两种,下面主要介绍两种方式的一些特点: 1、RS-232 (1)RS-232-C接口连接器一般使用型号为DB-9的9芯插头座,只需三条接口线,即“发送数据”、“接收数据”和“信号地”即可传输数据,其9支脚位的定义如下: (2)在RS232的规范中,电压在+3V---+15V(一般使用+6V)之间称为“0”或“ON”;电压在-3V----15V(一般使用-6V)之间称为“1”或“OFF”;计算机上的RS-232“高电位”约9V,而“低电位”则约-9V。 (3)RS-232为全双工工作模式,其讯号准位是参考地线而得,分别作为数据的传送和接收;实际应用中其传输距离可以达到15米。只具有单站功能,即一对一通讯。 2、RS485 (1)采用正负两根信号线作为传输线路。 (2)RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。

51_52系列单片机特殊功能寄存器及资源映射方式总结

51系列单片机特殊功能寄存器总结 第一节:片内RAM映射: 51:00H_7FH 128B片内(DATA),其中00H-07H: bank0,08H-0FH: bank1, 10H-17H: bank2,18H-1FH:bank3. 20H-2FH: 位寻址区(bdata) 30H-7FH: 堆栈区。 80H-FFH: SFR区 52:增加了80H-FFH间接寻址的片内RAM(IDATA) 第二节:特殊功能寄存器(51) ①TCON,地址:88H,定时器计数器控制,中断控制 IT0/1:外部中断触发方式控制,置0,为低电平触发,置1,为下降沿触发。每个机器周期的S5P2器件多外部触发采样。响应中断需要两个机器 周期。 IE0/1:外部中断请求标志,CPU响应中断后,硬件自动将IE清0 TFx,定时器Tx溢出标志,计数溢出时,硬件将其置位,响应中断后,硬件将其清0,该位可由程序查询。 TRx, 定时器x运行控制,置1则启动定时器,清0则停止定时器。 ②TMOD,地址:89H, 定时器计数器工作方式控制 counter对外部输入外冲计数,计一次数需要两个机器周期。 GATE: 取反后与外部中断输入或运算后再同TCON的TRx位相与控制计数器的启与停,GATE为0时,允许TRx开启或停止计数器,为1时,允许INTx开启或停止计数器。 ③TL0, 地址:8AH, 定时器0低八位 ④TL1, 地址:8BH, 定时器1低八位

⑤TH0, 地址:8CH, 定时器0高八位 ⑥TH1, 地址:8DH, 定时器1高八位1 ⑦SCON, 地址:98H,串行通信控制寄存器 S M2:方式2和方式3的多机通信控制位,在方式0中,SM2应置0。 REN:允许串行接收位,由软件置1时,允许接收,清0时。禁止接收 TB8:方式2和方式3中,发送的第9位数据,需要时由软件置位或复位。 RB8: 方式2和方式3中,接收到的第9位数据,在方式1时,RB是接收到停止位,在方式0时,不使用RB8. TI:接收中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。TI必须由软件清0。 RI:接收中断标志,由硬件置1。在方式0时(SM2应置0),接收到第8位结束时置1,当SM2=0的其他方式(方式0,1,3)时,接收到停止位置位“1”,当SM2=1时,若串口工作在方式2和3,接收到的第9位数据(RB8)为1时,才激活RI。在方式1时,只有接收到有效的停止位时才会激活RI。RI必须由软件清0 ⑧SBUF, 地址:99H,串行通信数据缓冲器 ⑨IE, 地址:A8H,中断使能控制寄存器 EA: globle interuption Enable, 1: Enable, 0: Disable ET2: timers2 flowover interuption Enable for52, 1: Enable, 0: Disable ES: serrial port interuption Enable, 1: Enable, 0: Disable ET1/0: timers1/0 flowover interuption Enable, 1: Enable, 0: Disable EX1/0: external interuption Enable, 1: Enable, 0: Disable

51单片机特殊功能寄存器功能一览表

51单片机特殊功能寄存器功能一览表 21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY =0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。

台达PLC通信协议ModbusASCII(DVP)

台达P L C通信协议 M o d b u s A S C I I(D V P) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

台达PLC通信协议ModbusASCII(DVP) 编撰:李浩特日期:2013/11/12 版本:Ver:3.2 例1:读D0(地址为1000H)寄存器数据-------------------------------2 例2:读D0-D8(D0地址为1000H,D8地址为1008H)寄存器数据----------3 例3:把0010H写入D0数据寄存器------------------------------------4 例4:写D10-D17数据寄存器-----------------------------------------5 例5:强制把0010H写入D0数据寄存器--------------------------------5 例6:读取M0(地址为0800H)状态-------------------------------------6 例7:读取M0-Y32状态----------------------------------------------6 例8:读取Y0(地址为0500H)状态-------------------------------------7 例9:读取Y0-Y37状态----------------------------------------------7 例10:读取X0(地址为0400H)状态------------------------------------8 例11:读取X0-X37状态--------------------------------------------8 例12:强制Y0置位------------------------------------------------9 例13:强制Y0复位------------------------------------------------9 例14:强制M0置位------------------------------------------------10 例15:强制M0复位------------------------------------------------10

特殊功能寄存器地址与控制位

/************************************************************ * 特殊功能寄存器地址和控制位 ************************************************************/ /*中断使能1*/ #define IE1_ 0x0000 sfrb IE1 = IE1_; #define WDTIE 0x01 /*看门狗中断使能*/ #define OFIE 0x02 /*外部晶振故障中断使能*/ #define NMIIE 0x10 /*非屏蔽中断使能*/ #define ACCVIE 0x20 /*可屏蔽中断使能/flash写中断错误*/ #define URXIE0 0x40 /*串口0接收中断使能*/ #define UTXIE0 0x80 /*串口0发送中断使能*/ /*中断标志1*/ #define IFG1_ 0x0002 sfrb IFG1 = IFG1_; #define WDTIFG 0x01 /*看门狗中断标志*/ #define OFIFG 0x02 /*外部晶振故障中断标志*/ #define NMIIFG 0x10 /*非屏蔽中断标志*/ #define URXIFG0 0x40 /*串口0接收中断标志*/ #define UTXIFG0 0x80 /*串口0发送中断标志*/ /* 中断模式使能1 */ #define ME1_ 0x0004 sfrb ME1 = ME1_; #define URXE0 0x40 /* 串口0接收中断模式使能 */ #define USPIE0 0x40 /* 同步中断模式使能 */ #define UTXE0 0x80 /* 串口0发送中断模式使能 */ /* 中断使能2 */ #define IE2_ 0x0001 sfrb IE2 = IE2_; #define URXIE1 0x10 /* 串口1接收中断使能 */ #define UTXIE1 0x20 /* 串口1发送中断使能 */ /* 中断标志2 */ #define IFG2_ 0x0003 sfrb IFG2 = IFG2_; #define URXIFG1 0x10 /* 串口1接收中断标志 */ #define UTXIFG1 0x20 /* 串口1发送中断标志 */ /* 中断模式使能2 */ #define ME2_ 0x0005 sfrb ME2 = ME2_; #define URXE1 0x10 /* 串口1接收中断模式使能 */ #define USPIE1 0x10 /* 同步中断模式使能 */ #define UTXE1 0x20 /* 串口1发送中断模式使能 */ /************************************************************

台达PLC通信协议书ModbusASCII[DVP]

台达PLC通信协议ModbusASCII(DVP) 编撰:李浩特日期:2013/11/12 版本:Ver:3.2 例1:读D0(地址为1000H)寄存器数据-------------------------------2 例2:读D0-D8(D0地址为1000H,D8地址为1008H)寄存器数据----------3 例3:把0010H写入D0数据寄存器------------------------------------4 例4:写D10-D17数据寄存器-----------------------------------------5 例5:强制把0010H写入D0数据寄存器--------------------------------5 例6:读取M0(地址为0800H)状态-------------------------------------6 例7:读取M0-Y32状态----------------------------------------------6 例8:读取Y0(地址为0500H)状态-------------------------------------7 例9:读取Y0-Y37状态----------------------------------------------7 例10:读取X0(地址为0400H)状态------------------------------------8 例11:读取X0-X37状态--------------------------------------------8 例12:强制Y0置位------------------------------------------------9 例13:强制Y0复位------------------------------------------------9 例14:强制M0置位------------------------------------------------10 例15:强制M0复位------------------------------------------------10

台达VFD通讯示例

台达VFD-B变频器串口通信中,频率设定,还有正转、反转、停止字符串是怎样写? 范例1:设定VFD-B系列变频器的频率为30.00Hz,通讯格式为9600,8,N,2,RTU 01 06 2001 0BB8 D488 范例2:设定VFD-B系列变频器正转,通讯格式为9600,8,N,2,RTU 01 06 2000 0022 0213 范例3:设定VFD-B系列变频器停止,通讯格式为9600,8,N,2,RTU 01 06 2000 0001 43CA 西门子与台达变频器通讯 ORGANIZATION_BLOCK 主程序:OB1 TITLE=实现S7-200 PLC与台达变频器通信 // 实现功能是PLC通过RS485通信控制变频器的正转启动、反转启动、停止、加速、减速和读取输出频率。变频器通过Modbus通信方式进行 // 要求台达变频器设置基本通信参数: // P00=d03(主频率由RS485控制) // P01=d03(运转/停止由RS485通信控制) // P88=d01(站点定义为1号站) // P90=d00 P91=d00 P92=d02 P113=d01 // (其他参数都是出厂默认值,可根据实际情况调节) // BEGIN Network 1 LD SM0.1 CALL SBR0

Network 2 // 正转启动命令LD M10.0 EU MOVB 16#30, VB104 MOVB 16#36, VB105 MOVB 16#32, VB106 MOVB 16#30, VB107 MOVB 16#30, VB108 MOVB 16#30, VB109 MOVB 16#30, VB110 MOVB 16#30, VB111 MOVB 16#31, VB112 MOVB 16#32, VB113 CALL SBR1 Network 3 // 反转启动指令LD M10.1 EU MOVB 16#30, VB104 MOVB 16#36, VB105 MOVB 16#32, VB106 MOVB 16#30, VB107 MOVB 16#30, VB108 MOVB 16#30, VB109 MOVB 16#30, VB110 MOVB 16#30, VB111 MOVB 16#32, VB112 MOVB 16#32, VB113 CALL SBR1 Network 4 // 停止指令 LD M10.2 EU MOVB 16#30, VB104

51单片机特殊功能寄存器详细说明

/*-------------------------------------------------------------------------- REG51.H Header file for generic 80C51 and 80C31 microcontroller. Copyright (c 1988-2001 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ /* BYTE Register */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; 程序状态字 sfr ACC = 0xE0; 累加器 sfr B = 0xF0; B寄存器 sfr SP = 0x81; 堆栈指针 sfr DPL = 0x82; 数据指针低八位 sfr DPH = 0x83; 数据指针高八位 sfr PCON = 0x87; 波特率选择寄存器 sfr TCON = 0x88; 定时器/计数器控制寄存器

sfr TMOD = 0x89; 定时器方式选择寄存器 sfr TL0 = 0x8A; 定时器0低八位 sfr TL1 = 0x8B; 定时器1低八位 sfr TH0 = 0x8C; 定时器0高八位 sfr TH1 = 0x8D; 定时器1高八位 sfr IE = 0xA8; 中断允许寄存器 sfr IP = 0xB8; 中断优先级寄存器 sfr SCON = 0x98; 串行控制寄存器 sfr SBUF = 0x99; 串行数据缓冲器 /* BIT Register */ /* PSW */ 程序状态字 sbit CY = 0xD7; 有无进位或者借位 sbit AC = 0xD6; Auxiliary Carry有无低四位向高四位的进位或借位 sbit F0 = 0xD5; 用户管理的标志位,可根据自己的需求设定 sbit RS1 = 0xD4; 这两位用于选择当前工作寄存器区。8051有8个8位寄存器R0~R7,它 们在RAM中的地址可以根据用户需要来确定。 sbit RS0 = 0xD3; RS1 RS0:R0~R7的地址0 0:00H~07H 0 1:08H~0FH 1 0:10H~17H 1 1:18H~1FH

51单片机的特殊功能寄存器

51单片机的特殊功能寄存器 通过前面课程的学习,我们已知道了单片机的内部有ROM、有RAM、有并行I/O 口,那么,除了这些东西之外,单片机内部究竟还有些什么?这些个零碎的东西怎么连在一起的? 下面就让我们来对单片机内部作一个完整的分析吧! 从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、 P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机 的内部包含了这么多的东西。 对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O口的锁存器就可以了,那么对于定时 /计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1 这个特殊功能寄存器了,还有哪些呢?看下表 符号地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器

P2 A0H P2口锁存器 SBUF 99H串行口锁存器 SCON 98H串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH定时器/计数器1(高8位) TH0 8CH 定时器/计数器1(低8位) TL1 8BH 定时器/计数器0(高8位) TL0 8AH 定时器/计数器0(低8位) TMOD 89H定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPH 83H 数据地址指针(高8位) DPL 82H 数据地址指针(低8位) SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H电源控制寄存器 下面,我们介绍一下几个常用的SFR。 1、ACC---是累加器,通常用A表示。 这 是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在 ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则 Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器。 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途 CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只

台达PLC通讯协议

台达PLC通讯协议原文 1、通讯协议ASCII模式,9600,7,e,1 ADR(通讯地址): PLC通讯地址出厂设定为0X01,因此(ADR1,ADR0)=‘0’,‘1’→=30H,31H 校验码: 校验码采用LRC方式,将ADR1至最后一个资料内容加总,将该值取2的补数,结果即为LRC校验码。 例: 01H+03H+04H+01H+00+01H=0AH 0AH的2的补数为F6H

注1: 2补数的求法:(1补数再加1) 0A(H)=00001010(B)先取1补数(将b0-b7反相)得11110101(B),再加1为11110110(B)=F6(H)即为0A(H)的2补数。 注2: 在收到一串完整的通讯命令,要检查这串通讯命令是否有误,只要将(ADR1,0)至(LRC1,0)加总等于0,则通讯无误,否则表示命令中资料有些是错误的。 通讯异常PLC的回应: 因为Address 0400 对Function 01是不合法的,所以回应Exception Code=0X02,且Function 01被设为81(b7被设为1),亦即由回应的Function code的MSB被设为1表示PLC回应ERROR MESSAGE,并且由Function code可得知是何种错误。 可用的命令码叙述如下:(每个device的address,请参考最后一页)

资料字元的格式依命令码而定,依可用的命令码的资料内容分别叙述如下: 例:从从动装置01读取线圈T20-T56 PC→PLC “:01 01 06 14 00 25 BF CR LF”

例:从从动装置01读取接点Y024-Y070 PC→PLC “:01 02 05 14 00 25 BF CR LF” 例:从从动装置01读取线圈T20-T27 PC→PLC “:01 03 06 14 00 08 DA CR LF”

台达PLC通讯协议(2)

台达PLC通讯协议V1.12通讯接口RS-232C RS-485 2. 通讯协议ASCII模式,9600 (传输速率),偶同位,1个起始位,1个停止位 9600,7,e,1 3. 通讯资料格式 STX起始字符’:’(3AH) ADR 1通讯地址: ADR 0 8-bit地址包含了2个ASCII码 CMD 1命令码: CMD 0 8-bit命令包含了2个ASCII码 DATA( 0)资料内容: DATA(1)n个8-bit资料包含了2n个ASCII码 ......... ... n <=74 个ASCII 码 DATA (n-1) LRC CHK 1侦误值: LRC CHK 0 8-bit侦误值包含了2个ASCII码 END 1结束字符: END 0 END 1 = CR( 0DH), END 0 = LF( 0AH) ADR (通讯地址) PLC 通讯地址出厂设定值为0x01,因此(ADR 1, ADR 0 =' 0 ' ,' 1' ' 0' =30H, '1'= 31H LRC CHK(侦误值)CMD (命令指令)及DATA (数据字符) LRC CHK(侦误值) 侦错方式采用LRC (Longitudinal Redundancy Check )侦误值。LRC侦误值乃是将ADR1至最后一个资料内容加总,将该值取2补码(2' s Complement )得到之结果即为LRC侦误值。 附录-3 例: STX ':' ADR 1 ' 0' ADR 0 ' 1' CMD 1 ' 0' CMD 0 ' 3' 起始资料地址’0' '4' '0' '1' 资料数’0' '0' '0' '1' LRC CHK 1 ' F' LRC CHK 0 ' 6' END 1 CR

51单片机的特殊功能寄存器详细表

51单片机的特殊功能寄存器详细列表 Symbol BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0Address P0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.080H SP81H DPL82H DPH83H PCON SMOD---GF1GF0PD IDL87H *PCON SMOD--WLE GF1GF0PD IDL87H TCON TF1TR1TF0TR0IE1IT1IE0IT088H TMOD GATE C/T M1M0GATE C/T M1M089H TL08AH TL18BH TH08CH TH18DH P1P1.7P1.6P1.5P1.4P1.3P1.2T2EX T290H *P1SDA SCL RT2T2CT3I CT2I CT1I CT0I90H SCON SM0SM1SM2REN TB8RB8TI RI98H SBUF99H P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.00A0H IE EA-ET2ES ET1EX1ET0EX00A8H *IEN0EA EAD ES1ES0ET1EX1ET0EX00A8H +CML00A9H +CML10AAH +CML20ABH +CTL00ACH +CTL10ADH +CTL20AEH +CTL30AFH P3RD WR T1T0INT1INT0TXD RXD0B0H IP--PT2PS PT1PX1PT0PX00B8H *IP0-PAD PS1PS0PT1PX1PT0PX00B8H +P4CMT1CMT0CMSR 5 CMSR 4 CMSR 3 CMSR 2 CMSR 1 CMSR 0C0H +P5ADC7ADC6ADC5ADC4ADC3ADC2ADC1ADC00C4H +ADCON ADC.1ADC.0ADEX ADCI ADCS AADR 2 AADR 1 AADR 0C5H +ADCH0C6H T2CON TF2EXF2RCLK TCLK EXEN 2 TR2C/T2 3CP/R L2 0C8H *TM2IR T2OV CMI2CMI1CMI0CTI3CTI2CTI1CTI00C8H +CMH00C9H RCAP2L0CAH *CMH10CAH

台达PLC通讯组态设置.doc

概述系统连接硬件连接硬件设置设备组态数据连接常见问题 概述 台达PLC通讯协议支持与台达PLC通讯。本协议采用串行通讯,使用你计算机中的串口。 系统连接 您可以通过一个RS232-RS485转换器将一台或多台模块与计算机连接到一起。当用一条485总线连接多台模块时,每台模块的地址必须是唯一的. 硬件连接 请参照您所使用的模块的通讯说明进行连接。 (1)RS232:采用厂家提供的专用电缆。一端接计算机的串口,一端接PLC的编程口。 波特率 9600 数据位 7位 停止位 2位 校验位偶校验 (2)RS485:计算机通过RS232串口接转换模块,变成RS485信号后,接到PLC的485口上 波特率 9600 数据位 7位 停止位 1位 校验位偶校验

设备组态 设备驱动根据模块不同分为选择相应的模块驱动。如图:根据您所使用的PLC、智能模块选择设备驱动。 下图是设备组态用户界面:

根据PLC或智能模块内部设置的地址填写“设备地址”,相对于协议的设备ID. 更新周期:默认50毫秒就是说每隔一个更新周期读一次数据包。请根据组态工程的实际需要和PLC的通讯反应时间设定。 超时时间:默认8秒,当到超时时间的时候,PLC的数据还没传上来被认为是一次通讯超时。请根据组态工程的实际需要和现场的通讯情况设定。 故障后恢复查询:当设备发生故障导致通讯中断,系统会每隔一定“周期”查询该设备。直到“最长时间”如果还没有反应,在这次运行过程中系统将不再查询该设备。 “动态优化”和“初始禁止”请在力控工程人员的指导下使用,否则请保持默认状态。 下图为串口通讯设置:请根据PLC或智能模块的通讯说明设置波特率,数据位,校验位,停止位。

MCS-51单片机的特殊功能寄存器

MCS-51单片机的特殊功能寄存器 从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O 口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表

下面,我们介绍一下几个常用的SFR。 1、ACC---是累加器,通常用A表示。 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器。 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3指针寄存器 (1)程序计数器PC 指明即将执行的下一条指令的地址,16位,寻址64KB范围, 复位时PC = 0000H (2)堆栈指针SP 指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H (3)数据指针DPTR @R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。DPTR = DPH + DPL。可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作 4、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU 的当前状态,并作出相应的处理。它的各位功能请看下表: CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(01010111+00111010) 下面我们逐一介绍各位的用途 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。 P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。 例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。 5、P0、P1、P2、P3------这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

C51单片机21个特殊功能寄存器

21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83 个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。 在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):

分别说明如下: 1、ACC---是累加器,通常用A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。 2、B--一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表: 下面我们逐一介绍各位的用途CY:进位标志。,如果做加法的话,两数位运算器只能表示到0-255中的运算器是一种8位的运算器,我们知道,88051,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有相加可能会超过2550 CY==1;无进、借位,进、借位,CY )78H+97H(01111000+10010111例: 。(高半字节与低半字节间的进、借位)AC:辅助进、借位)(01010111+0011101057H+3AH例::用户标志位F0 由用户(编程人员)决定什么时候用,什么时候不用。 :工作寄存器组选择位、RS0RS1现场保两位的状态,就能任选一个工作寄存器区。这个特点提高了MCS-51中的RS1、RS0通过修改PSW不需的工作效率和响应中断的速度是很有利的。若在一个实际的应用系统中,护和现场恢复的速度。对于提高CPU 要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。 0V:溢出标志位0。什么是溢出我们后面的章节会讲到。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV= :奇偶校验位P。运算结果有,否则为0P=1ALU它用来表示运算结果中二进制数位“1”的个

80C51特殊功能寄存器地址表

80C51特殊功能寄存器地址表

/*--------- 8051内核特殊功能寄存器-------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器-------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器--------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 sbit EADC = IE^5; //ADC中断允许控制位 sbit ES = IE^4; //串口1中断允许位 sbit ET1 = IE^3; //定时器1溢出中断允许位 sbit EX1 = IE^2; //外部中断1允许位 sbit ET0 = IE^1; //定时器0溢出中断允许位 sbit EX0 = IE^0; //外部中断0允许位 sfr IE2 = 0xAF; //中断允许寄存器2 sfr IP = 0xB8; //中断优先级寄存器 sbit PPCA = IP^7; // PCA中断优先级控制位 sbit PLVD = IP^6; //低电压检测中断优先级控制位sbit PADC = IP^5; //ADC中断优先级控制位 sbit PS = IP^4; //串口1中断优先级控制位 sbit PT1 = IP^3; //定时器1中断优先级控制位 sbit PX1 = IP^2; //外部中断1优先级控制位 sbit PT0 = IP^1; //定时器0中断优先级控制位 sbit PX0 = IP^0; //外部中断0优先级控制位 sfr IPH = 0xB7; //中断优先级高位寄存器 sfr IP2 = 0xB5; //第二中断优先级寄存器低字节 sfr IPH2 = 0xB6; //第二中断优先级寄存器高字节 /*--------------- I/O 口特殊功能寄存器-------------------*/ sfr P0 = 0x80; //P0口寄存器 sfr P0M1 = 0x93; //P0口工作模式寄存器1

相关文档
最新文档