1.创建博途项目并上传S7-1200PLC的硬件组态。
2.设置RS485模块的参数,模块的通讯参数要与通讯仪表的通讯参数要一致,我这里设置的是波特率9600,数据位8,奇偶校验为偶校验偶,停止位为1。
3.添加Modbus通讯指令。
通过西门子手册,可知博途有两个modbus块,这里需要注意的是,MODBUS(RTU)只适用于485模块。采用485通讯板的话,需要采用MODBUS。
PORT:通信端口的硬件标识符。选择你要使用的通信串口硬件即可。
BAUD:波特率选择:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200。
MB_DB:对Modbus_Master或Modbus_Slave指令的背景数据块的引用。翻译过来,就是此处必须使用主站指令或从站指令的背景数据块,因此必须首先添加主站或从站指令,此端口才可以选择对应背景数据块。
主站指令:
REQ:TRUE时,请求向 Modbus 从站发送数据 ,建议采用上升沿触发。
MB_ADDR:Modbus RTU从站地址。
MODE:模式选择:指定请求类型(读取或写入)。具体可以查看官方文档,此处注意与MODBUS功能码的区分。
DATA_ADDR:你要读取的MODBUS从站的起始地址。
DATA_LEN:你要读取的MODBUS从站的数据长度。
DATA_PTR:指向CPU 的数据块或位存储器地址,从该位置读取数据或向其写入数据。通俗来说,就是你读取过来的数据,要放在什么位置。
4.修改初始化指令背景DB里的mode参数为4。