1、添加485通讯面板
2、查看的默认通讯参数
【注意】
波特率:9600
奇偶校验:无
数据位:8位
停止位:1位
这是西门子的默认标准,建议提升至公司所有485通讯设备的统一调准。这样方便编程和调试
3、面板实物和接线
4、其他常见的485口
5、485指令选择,主要用哪里的指令取决于硬件
6、西门子1200常见的485通讯功能码和Modbus地址转换
MODE:0读取从站设备中的数据;1 将数据写入到从站设备中
转换后的Modbus地址起始是从1开始,如三方设备的地址是2000H,十六进制2000H转换为十进制就是8192,
也就是Modubus的地址要向后便宜8192个位,再加上起始地址是1,则写为8193,此时如果功能码是06,则最终的Modbus地址是8193+40000=48193。MODE=1,则表示,Master向Slave中写入一个保持寄存器,Modbus为48193
7、组态建立连接
485通讯的特点,一主多从,从站不需要写代码,仅主站写代码即可,Master函数内有读写指令,所以一般是组态+Master函数即可完成通讯
communication_load 通讯加载
REQ=request 请求 一般只需要建议一通电通讯连接,done后才能使用master的读写指令。所以使用FirstScan即可
PORT 端口,博图系统默认端口为269
BAUD 波特率。 9600
PARITY 校验 0 无校验
MB_DB 有且只能写Master的背景DB块
8、Master函数向从站中读写数据
REQ =request 请求,导通一次则发送一次,一直导通则一直发送数据,所以一般选用上升沿触发
MB_ADDR 从站站号,需要在从站设备中设置。如主站站号1,从站站号2
MODE 模式选择。0从从站中读取数据到主站;1主站数据写入到从站
DATA_ADDR modbus地址,需要根据MODE+Modbus功能+从站内部存储该数据的地址(如果对方是16进制则需先转换成10进制)=Modbus地址
具体可以参照第六张图片
DATA_LAN=data length 数据长度 modbus地址后面需要操作几个数据长度 demo中假设为1
data_ptr=datapointer:接收数据的地址指针,接收数据的首地址。此处为master向slave中发送数据在master中的保存地址
9、多条读写指令的处理