欢迎来到天天文库
浏览记录
ID:21495301
大小:993.65 KB
页数:23页
时间:2018-10-22
《s71200 modbus 通讯指令解析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、S7-1200 作为ModbusRTU主站S7-1200支持ModbusRTU通信模式的模块可作为ModbusRTU主站。以下以CPU1215CDC/DC/DC和CM1241RS485模块为例,介绍S7-1200ModbusRTU主站通信组态及编程步骤。硬件和软件需求及所完成的通信任务:硬件:①CPU1215CDC/DC/DC(订货号:6ES7215-1AG31-0XB0)②CM1241RS485(订货号:6ES7241-1CH30-0XB0)③PS307电源(订货号:6ES7307-1KA02-0AA0) ④PC(带以太网卡) ⑤TP以太网电缆软件:①STEP7Pro
2、fessionalV11SP2UPD4+HSP②ModSim(该软件是第三方软件,可以从Internet网络下载)所完成的通信任务:将ModbusRTU从站ModSim中Modbus地址从40001开始的5个字中的数据,分别读取到ModbusRTU主站CPU1215C中地址从DB1.DBW0开始的5个字中。1.组态ModbusRTU通信模块在硬件目录里找到“通信模块”→“点到点”→“CM1241(RS485)”,双击或拖拽此模块至CPU左侧即可,如下图1所示:图1组态通信模块接下来,在“设备视图”中用鼠标选中CM1241(RS485)模块,在“属性”→“端口组态”中配置
3、此模块硬件接口参数。如下图2所示:以下以传输率=9.6Kbps,奇偶校验=无奇偶校验,数据位=8位字符,停止位=1,其它保持默认设置为例。图2RS485端口设置最后在“硬件标识符”里确认一下硬件标识符为271,如下图3所示:图3硬件标识符2.添加启动OB在项目树下选择“CPU1215CDC/DC/DC”→“程序块”→“添加新块”,在弹出的窗口中选择“OB组织块”→“Startup”,添加启动OB100,如下图4所示:图4添加启动OB3.调用MB_COMM_LOAD指令为使端口一启动就被设置为ModbusRTU通信模式,可在OB100中调用“MB_COMM_LOAD”指令
4、。调用“MB_COMM_LOAD”指令时会自动弹出创建相应背景数据块的界面,如下图5所示:图5调用MB_COMM_LOAD指令点击“确认”为该指令创建背景数据块后,为各输入/输出引脚分配地址。尤其需注意MB_DB输入引脚需指向“MB_MASTER”指令的背景数据块,如下图6所示:注意: “MB_COMM_LOAD”指令输入位“REQ”需使用上升沿触发。由于OB100只在S7-1200启动时执行一次,因此,此例中将“REQ”设为“TRUE”。图6MB_COMM_LOAD指令MB_COMM_LOAD指令参数意义如下表1所示:引脚说明EN使能端REQ在上升沿执行该指令PORT
5、通信端口的硬件标识符BAUD波特率选择:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200(注意:所有其它值均无效)PARITY奇偶检验选择:0-无;1-奇校验;2-偶校验FLOW_CTRL流控制选择:0-(默认值)无流控制RTS_ON_DLYRTS延时选择:0-(默认值)RTS_OFF_DLYRTS关断延时选择:0-(默认值)RESP_TO响应超时:默认值=1000ms。MB_MASTER允许用于从站响应的时间(以毫秒为单位)。MB_DB对MB_MASTER或MB_SLAVE指令所使用的背景数据块
6、。DONE完成位:指令执行完成且未出错置1ERROR错误位:0-未检测到错误;1-检测到错误。在参数STATUS中输出错误代码。STATUS端口组态错误代码表1MB_COMM_LOAD指令参数意义4.创建DATA_PTR数据发送、接收缓冲区通过“程序块”→“添加新块”,选择“数据块(DB)”创建DB块,选择“标准与S7-300/400兼容”,点击“确认”键。在DB中创建数据类型为5个字的数组,如下图7所示:注意:DATA_PTR数据发送、接收缓冲区使用的DB访问类型必须是标准与S7-300/400兼容。图7创建DATA_PTR数据发送、接收缓冲区5.调用MB_MASTE
7、R指令在OB1中调用“MB_MASTER”指令,调用该指令时会自动弹出创建相应背景数据块的界面,如下图8所示:图8调用MB_MASTER指令点击“确认”为该指令创建背景数据块后,并为各输入/输出引脚分配地址,如下图9所示:注意:“MB_MASTER”指令的输入位“REQ”必须使用上升沿触发。以下以S7-1200作为ModbusRTU主站,用F03功能码读取ModbusRTU从站2,从Modbus地址40001开始的五个字,接收的数据存放在缓冲区DB3.DBW0开始区域为例。设置如下所示:MB_ADDR=2,MODE=0,DATA_ADDR
此文档下载收益归作者所有