plc和单片机通讯,单片机与plc串口通信
chanong
|30001 至3xxxx - 模拟输入
40001 至4xxxx - 保持寄存器
6 Count 数据个数、通信数据个数(位数或字数)
注意:Modbus 主站可以读取/写入的最大数据量为120 个字(请参阅每个MBUS_MSG 指令)
7 DataPtr数据指针:
1. 对于读命令,读取的数据放置在该数据区。
2. 对于写指令,要写入的数据放置在该数据区。
8 完成完成位读写功能完成位
9 Error 错误代码:错误代码仅在Done 位为1 时有效。
0=无错误
1=响应校验和错误
2=未使用
3=接收超时(从机没有响应)
4=请求参数错误(从站地址、Modbus 地址、计数、RW)
5=Modbus/自由端口未启用
6=Modbus 正忙于处理其他请求
7=响应错误(响应不是请求的操作)
8=响应CRC 校验和错误
-
101=从站不支持请求的功能
102=从机不支持数据地址
103=从站不支持此数据类型
104=从设备故障
105=从机接受消息,但响应延迟
106=消息被拒绝,因为从站正忙。
107=从机拒绝消息
108=从存储器奇偶校验错误
3. 从站和Modbus 保持寄存器地址映射必须支持的功能为了支持读写上面列出的Modbus 地址,Modbus 主站协议库要求从站支持以下功能:
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
以下是使用串口助手找到的数据:
如果您喜欢,请点赞和分享。您的支持是我的动力。帮助别人可以让你快乐!








