您当前的位置:钢材 > 型钢 > 市场分析

plc单片机工作原理,plc做主站和从站区别

来源:头条 作者: chanong
分享到
关注德勤钢铁网在线:
  • 扫描二维码

    关注√

    德勤钢铁网微信

在线咨询:
  • 扫描或点击关注德勤钢铁网在线客服

本节我们主要完成PLC作为主站,51单片机作为从站,使用ModBus协议进行通信。 PLC从单片机的保持寄存器区域读取数据。 S7-200PLC程序主要是通过调用Modubs RTU主站指令库来完成。

1、调用Modbus RTU主站初始化及控制子程序。

使用SM0.0调用MBUS_CTRL来完成主站的初始化并开始控制其功能。

各参数含义如下:

A。

J.P

启用:

必须在每个扫描周期启用(使用SM0.0)

b.

模式

模型:

值为1 启用Modbus 协议功能;值为0 则恢复系统PPI 协议。

C。

波特率

波特率:

支持的通讯波特率有1200、2400、4800、9600、19200、38400、57600、115200。

d.

平价

查看:

选择验证方法

0=不验证

1=奇数测试

2=均匀比较测试

e.

暂停

暂停:

主站等待从站响应的时间量(以毫秒为单位),典型设置为1000 毫秒(1 秒),允许的范围为1 到32767。

注意:该值必须设置得足够大,以便从机有时间响应。

F。

结尾

完成位:

初始化完成后,该位自动设置为1。该位可用于启动MBUS_MSG 上的读写操作(参见例程)

G。

错误

初始化错误代码(仅当Done 位为1 时有效):

0=无错误

1=无效的检查选择

2=波特率选择无效

3=模式选择无效

2、调用Modbus RTU主站读写子程序MBUS_MSG发送Modbus请求。

各参数含义如下:

A。

J.P

启用:

一次只能启用一个读写功能(即MBUS_MSG)

注意:为确保所有读写指令循环执行,建议使用前一个MBUS_MSG 指令(例程)的Done 完成位来激活每个读写功能(即MBUS_MSG)。

b.

开始

读写请求位:

每个新的读或写请求都必须使用脉冲触发器

C。

奴隶

从机地址:

设置范围1 至247

d.

RW

从机地址:

0=读,1=写

消息:

1.开关量输出和保持寄存器支持读写功能

2. 开关量输入和模拟量输入仅支持读取功能。

e.

地址

读写从站数据地址:

选择要读写的数据类型

00001 至0xxxx - 开关输出

10001 至1xxxx - 数字输入

30001 至3xxxx - 模拟输入

40001 至4xxxx - 保持寄存器

F。

数数

数据数量

要通信的数据数量(位数或字数)

注意:Modbus 主站可以读取/写入的最大数据量为120 个字(请参阅每个MBUS_MSG 指令)

G。

数据指针

数据指针:

1. 对于读命令,读取的数据放置在该数据区。

2. 对于写指令,要写入的数据放置在该数据区。

H。

结尾

完成位

读写功能完成位

我。

错误

错误代码:

仅当Done 位为1 时,该错误代码才有效。

0=无错误

1=响应校验和错误

2=未使用

3=接收超时(从机没有响应)

4=请求参数错误(从站地址、Modbus 地址、计数、RW)

5=Modbus/自由端口未启用

6=Modbus 正忙于处理其他请求

7=响应错误(响应不是请求的操作)

8=响应CRC 校验和错误

-

101=从站不支持请求的功能

102=从机不支持数据地址

103=从机不支持此数据类型

104=从设备故障

105=从机接受消息,但响应延迟

106=消息被拒绝,因为从站正忙。

107=从机拒绝消息

108=从存储器奇偶校验错误

常见错误:

如果同时使能多条MBUS_MSG指令,则第6错误库存储区可能会在程序的其他地方被复用,从而产生第6错误从站。主站错误No.3 主站错误No.3 由于从站断电或网络故障而发生。

3、从站必须支持的功能及Modbus保持寄存器地址映射

为了支持读写上面列出的Modbus 地址,Modbus 主站协议库要求从站支持以下功能:

从站必须支持的功能

Modbus地址

读写

Modbus 从站必须支持的功能

00001-09999

数字输出

功能1

功能5:写指令输出点

特性15:写入多个输出点

10001-19999

数字输入

功能2

-

30001-39999

输入寄存器

功能4

-

40001-49999

持有登记册

功能3

特性6:单寄存器写入

功能16:写入多个寄存器单元

Modbus 保持寄存器地址映射示例:

4、S7-200PLC程序

5、单片机程序;STC11F04E单片机,9600波特率

START: MOV TMOD,#21H ;定时器1为8位重载,定时器0为16位定时器

MOV TH1,#0FDH;预设初始值(按照波特率9600BPS预设初始值)

MOV TL1,#0FDH;0FDH=9600=11.0592

MOV TH0, #0DCH;88H ;8800=12t,7000=stc1t

MOV TL0,#00H

ORL IE,#92H ;EA=1,ES=1;ET0=1

SETB PS;串口中断优先级

SETB TR1;启动定时器1

MOV 98H,#50H ;scon

MOV P1M0,#01000000b ; P1M0=0 P1M1=0 双向端口P1M0=1 P1M1=0 输入端口P1M0=0 P1M1=1 推挽输出20ma

MOV P1M1,#10000000b

MOV WDT_CONTR ,#27H 看门狗设置使能

QL0: MOV A,#00H

MOV R0,#10H

MOV R2,#9BH ;10-ABH 清零

CLEAR: MOV @R0,A

INC R0

DJNZ R2,透明

清除标志

CLR 标志_0

SETB TR0;启动定时器0

;ANL AUX,#07FH ;p3.0p3.1 作为串口

ORL AUX, #80H ;p1.7, p1.6 作为串口

CLR P3.7;485芯片接收使能

WA1:MOV WDT_CONTR ,#37H;喂狗;SETB CW

JNB FLAG_0,WA1;FLAG_0=1表示收到上位机数据

清除TR0

MOV A,2CH; 假设本地地址码为1,验证设备地址是否为01h码。

MOV R2,A

高铁A,#01H

JNZ QL0

ACALL FSZJ ;FH: DB 01H, 03H, 16, 00H, 01H, 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H, 10H, 11H, 12H, 0DH, 0EH, 0FH, 10H, 11H, 12H, 13小时, 14H, 15H, 16H, 17H, 18H, 19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH;18

通话延迟

致电福之杰

AJMP QL0

FZJ: MOV R0,#2cH ;向主机发送数据子程序

FZJ0: MOV R2,#10H

FZJ1: CLR EA

ANL AUX, #07FH ; p3.0p3.1 作为串行端口

FZL1: MOV A,@R0

MOV SBUF,A

JNBTI,$

CLRTI

INC R0

DJNZ R2、FZL1

集结EA

视网膜色素变性

FSZJ: MOV DPTR,#FH

MOV R2,#19;

奥尔辅助,#80H

SETB P3.7;发送数据

MOV R0,#40H

FSZJA: MOV A,#0H

MOVC A,@A+DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R2、FSZJA

MOV R0,#40H

MOV CRCCD,#19

LCALLCRC1

MOV R2,#21

MOV R0,#40H

FSZJ2: MOV A,@R0

MOV SBUF,A

JNBTI,$

CLRTI

INC R0

DJNZ R2、FSZJ2

集结EA

视网膜色素变性

FH:DB 01H、03H、16、00H、01H、02H、03H、04H、05H、06H、07H、08H、09H、10H、11H、12H、0DH、0EH、0FH、10H、11H、12H、13H、14小时,15小时、16H、17H、18H、19H、1AH、1BH、1CH、1DH、1EH、1FH;18

以下是使用串口助手找到的数据:

责任编辑:德勤钢铁网 标签:

热门搜索

相关文章

广告
德勤钢铁网 |市场分析

plc单片机工作原理,plc做主站和从站区别

chanong

|

本节我们主要完成PLC作为主站,51单片机作为从站,使用ModBus协议进行通信。 PLC从单片机的保持寄存器区域读取数据。 S7-200PLC程序主要是通过调用Modubs RTU主站指令库来完成。

1、调用Modbus RTU主站初始化及控制子程序。

使用SM0.0调用MBUS_CTRL来完成主站的初始化并开始控制其功能。

各参数含义如下:

A。

J.P

启用:

必须在每个扫描周期启用(使用SM0.0)

b.

模式

模型:

值为1 启用Modbus 协议功能;值为0 则恢复系统PPI 协议。

C。

波特率

波特率:

支持的通讯波特率有1200、2400、4800、9600、19200、38400、57600、115200。

d.

平价

查看:

选择验证方法

0=不验证

1=奇数测试

2=均匀比较测试

e.

暂停

暂停:

主站等待从站响应的时间量(以毫秒为单位),典型设置为1000 毫秒(1 秒),允许的范围为1 到32767。

注意:该值必须设置得足够大,以便从机有时间响应。

F。

结尾

完成位:

初始化完成后,该位自动设置为1。该位可用于启动MBUS_MSG 上的读写操作(参见例程)

G。

错误

初始化错误代码(仅当Done 位为1 时有效):

0=无错误

1=无效的检查选择

2=波特率选择无效

3=模式选择无效

2、调用Modbus RTU主站读写子程序MBUS_MSG发送Modbus请求。

各参数含义如下:

A。

J.P

启用:

一次只能启用一个读写功能(即MBUS_MSG)

注意:为确保所有读写指令循环执行,建议使用前一个MBUS_MSG 指令(例程)的Done 完成位来激活每个读写功能(即MBUS_MSG)。

b.

开始

读写请求位:

每个新的读或写请求都必须使用脉冲触发器

C。

奴隶

从机地址:

设置范围1 至247

d.

RW

从机地址:

0=读,1=写

消息:

1.开关量输出和保持寄存器支持读写功能

2. 开关量输入和模拟量输入仅支持读取功能。

e.

地址

读写从站数据地址:

选择要读写的数据类型

00001 至0xxxx - 开关输出

10001 至1xxxx - 数字输入

30001 至3xxxx - 模拟输入

40001 至4xxxx - 保持寄存器

F。

数数

数据数量

要通信的数据数量(位数或字数)

注意:Modbus 主站可以读取/写入的最大数据量为120 个字(请参阅每个MBUS_MSG 指令)

G。

数据指针

数据指针:

1. 对于读命令,读取的数据放置在该数据区。

2. 对于写指令,要写入的数据放置在该数据区。

H。

结尾

完成位

读写功能完成位

我。

错误

错误代码:

仅当Done 位为1 时,该错误代码才有效。

0=无错误

1=响应校验和错误

2=未使用

3=接收超时(从机没有响应)

4=请求参数错误(从站地址、Modbus 地址、计数、RW)

5=Modbus/自由端口未启用

6=Modbus 正忙于处理其他请求

7=响应错误(响应不是请求的操作)

8=响应CRC 校验和错误

-

101=从站不支持请求的功能

102=从机不支持数据地址

103=从机不支持此数据类型

104=从设备故障

105=从机接受消息,但响应延迟

106=消息被拒绝,因为从站正忙。

107=从机拒绝消息

108=从存储器奇偶校验错误

常见错误:

如果同时使能多条MBUS_MSG指令,则第6错误库存储区可能会在程序的其他地方被复用,从而产生第6错误从站。主站错误No.3 主站错误No.3 由于从站断电或网络故障而发生。

3、从站必须支持的功能及Modbus保持寄存器地址映射

为了支持读写上面列出的Modbus 地址,Modbus 主站协议库要求从站支持以下功能:

从站必须支持的功能

Modbus地址

读写

Modbus 从站必须支持的功能

00001-09999

数字输出

功能1

功能5:写指令输出点

特性15:写入多个输出点

10001-19999

数字输入

功能2

-

30001-39999

输入寄存器

功能4

-

40001-49999

持有登记册

功能3

特性6:单寄存器写入

功能16:写入多个寄存器单元

Modbus 保持寄存器地址映射示例:

4、S7-200PLC程序

5、单片机程序;STC11F04E单片机,9600波特率

START: MOV TMOD,#21H ;定时器1为8位重载,定时器0为16位定时器

MOV TH1,#0FDH;预设初始值(按照波特率9600BPS预设初始值)

MOV TL1,#0FDH;0FDH=9600=11.0592

MOV TH0, #0DCH;88H ;8800=12t,7000=stc1t

MOV TL0,#00H

ORL IE,#92H ;EA=1,ES=1;ET0=1

SETB PS;串口中断优先级

SETB TR1;启动定时器1

MOV 98H,#50H ;scon

MOV P1M0,#01000000b ; P1M0=0 P1M1=0 双向端口P1M0=1 P1M1=0 输入端口P1M0=0 P1M1=1 推挽输出20ma

MOV P1M1,#10000000b

MOV WDT_CONTR ,#27H 看门狗设置使能

QL0: MOV A,#00H

MOV R0,#10H

MOV R2,#9BH ;10-ABH 清零

CLEAR: MOV @R0,A

INC R0

DJNZ R2,透明

清除标志

CLR 标志_0

SETB TR0;启动定时器0

;ANL AUX,#07FH ;p3.0p3.1 作为串口

ORL AUX, #80H ;p1.7, p1.6 作为串口

CLR P3.7;485芯片接收使能

WA1:MOV WDT_CONTR ,#37H;喂狗;SETB CW

JNB FLAG_0,WA1;FLAG_0=1表示收到上位机数据

清除TR0

MOV A,2CH; 假设本地地址码为1,验证设备地址是否为01h码。

MOV R2,A

高铁A,#01H

JNZ QL0

ACALL FSZJ ;FH: DB 01H, 03H, 16, 00H, 01H, 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H, 10H, 11H, 12H, 0DH, 0EH, 0FH, 10H, 11H, 12H, 13小时, 14H, 15H, 16H, 17H, 18H, 19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH;18

通话延迟

致电福之杰

AJMP QL0

FZJ: MOV R0,#2cH ;向主机发送数据子程序

FZJ0: MOV R2,#10H

FZJ1: CLR EA

ANL AUX, #07FH ; p3.0p3.1 作为串行端口

FZL1: MOV A,@R0

MOV SBUF,A

JNBTI,$

CLRTI

INC R0

DJNZ R2、FZL1

集结EA

视网膜色素变性

FSZJ: MOV DPTR,#FH

MOV R2,#19;

奥尔辅助,#80H

SETB P3.7;发送数据

MOV R0,#40H

FSZJA: MOV A,#0H

MOVC A,@A+DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R2、FSZJA

MOV R0,#40H

MOV CRCCD,#19

LCALLCRC1

MOV R2,#21

MOV R0,#40H

FSZJ2: MOV A,@R0

MOV SBUF,A

JNBTI,$

CLRTI

INC R0

DJNZ R2、FSZJ2

集结EA

视网膜色素变性

FH:DB 01H、03H、16、00H、01H、02H、03H、04H、05H、06H、07H、08H、09H、10H、11H、12H、0DH、0EH、0FH、10H、11H、12H、13H、14小时,15小时、16H、17H、18H、19H、1AH、1BH、1CH、1DH、1EH、1FH;18

以下是使用串口助手找到的数据:


市场分析