《s71200-modbus-通讯指令解析.docx》由会员分享,可在线阅读,更多相关《s71200-modbus-通讯指令解析.docx(26页珍藏版)》请在第壹文秘上搜索。
1、S7-1200作为MdhusRTU主站S7-I2()()支持ModbusRTU通信模式的模块可作为ModbusRTU主站。以下以CPUI215CDCDCDe和CMI241RS485模块为例,介绍S7-I2()()ModbusRTU主站通信组态及编程步骤。硬件和软件需求及所完成的通信任务:硬件,CPU1215CDC/DaDC(订货号:6ES7215-1AG31-OXBO)CM1241RS485(订货号:6ES724I-ICH30-0XB0)PS307电源(订货号:6ES7307-1KA02-0AA0)PC(带以太网卡)TP以太网电缆软件STEP7ProfessionalV11SP2UPD4+HS
2、PModSim(该软件是第三方软件,可以从Internet网络下载)所完成的通信任务:将ModbusRTU从站MOdSim中Modhus地址从40001起先的5个字中的数据,分别读取到ModbUSRTU主站CPU12I5C中地址从DB1.DBWO起先的5个字中。1.组态ModbusRTU通信模块在硬件书目里找到“通信模块”一“点到点”T“CM124I(RS485),双击或拖拽此模块至CPU左恻即可,如下图1所示:S7-1200ModbusRTUP1.jlCPU1215CDODCZDCJ_XH史拒坦明&阚将视奥JW设备视图送件人:E国tlF1i图I组态通信模块接下来,在“设备视图”中用鼠标选中C
3、M1241(RS485)模块,在“属性”T“端口组态”中配置此模块硬件接口参数。如下图2所示:以下以传输率=9.6Kbps,奇偶校验=无奇偶校验,数据位=8位字符,停止位=】,其它保持默认设置为例。11注口馅花相君传送泊息铝态所接收的清息清开始清电绪果耍件标识将城口组专,口FF字符图2RS485端口设置最终在“硬件标识符”里确认一下硬件标识符为271,如下图3所示:RX85接口义屋住常规茶口组近姐宣传送滴HIa无所接收的消息消息刑is消息绪果i健件标识符图3硬件标识符硬件标识符健件标识符在项目树下选择“CPU1215CDeDaDC”T“程序块”-“添加新块”,在弹出的窗口中选择PB组织块T“S
4、tartup,添加启动OBIo0,如下图4所示:图4添加启动OB3.调用MB_COMM_1.OAD指令为使端口一启动就被设置为ModbusRTU通信模式,可在OB100中调用“MB_COMM_1.OAD”指令。调用“MB_C0MM_1.0AD”指令时会自动弹出创建相应背景数据块的界面,如下图5所示:F1目画z叁日勤6S91,埃标SfiMainProgramSs.eep(Cycle)-市程序段1:Ellreo2PT8MJDP“ITTMB.DB.1BCOI1.1.QADEHOOOIICerrorSTATUS图5调用MB_COMM_1.OAD指令点击“确认为该指令创建背景数据块后,为各输入/输出引脚
5、安排地址。尤其需留意MB.DB输入引脚需指向MB_MASTER”指令的背景数据块,如下图6所示:小留意:MB_COMM1.OAD”指令输入位“REQ”需运用上升沿触发。由于OBloO只在S7-I200启动时执行一次,因此,此例中将“REQ”设为“TRUE”。XDBl11B.C0,IM.1.OQDB-.IBeCOI-Ih1.1.OADllTUE-PEO271*CM.I24IJPS485-f0rT960BAUD?一PAfITYO-F1.OWeOl-PTSeeOHJQ-FTSeOFFe10OO-PespjoDOHEE”OFSTATUSM3MASTER33J(2311三-=_WeMBeCObIK1.1
6、.OADeDBKIB-COMM.1.OAPORTBAUD波特率选择:3600,6()()(),I2(XX),24(X),4800,9600,19200,38400,57600,76800,115200(留意:全部其它值均无效)PARITY奇偶检验选择:O-无;I-奇校验;2-偶校验F1.OW.CTR1.流限制选择:()_(默认值)无流限制RTS_ON_D1.YRTS延时选择:0-(默认值)RTS_OFF_D1.YRTS关断延时选择:0-(默认值)RESP-TO响应超时:默认值=I(XX)msoMB.MASTER允许用于从站响应的时间(以喳秒为单位)。MB_DB对MB_MASTER或MB_S1.
7、AVE指令所运用的背景数据块。DONE完成位:指令执行完成且未出错置1ERROR错误位:未检测到错误:1-检测到错误。在参数STATUS中输出错误代码。STATUS端口组态错误代码表IMB_COMM_1.OAD指令参数意义4 .创建DATA_PTR数据发送、接收缓冲区通过“程序块“添加新块”,选择“数据块(DB)“创建DB块,选择“标准与S7-300/400兼容”,点击“确认”键。在DB中创建数据类型为5个字的数组,如下图7所示:从留意:DATA_PTR数据发送、接收缓冲区运用的DB访问类型必需是标准与S7-300/400兼容。图7创建DATA_PTR数据发送、接收缓冲区5 .调用MB_MAS
8、TER指令在OBl中调用“MBMASTER”指令,调用该指令时会自动弹出创建相送件端点白.国WC月W0059*+千埃接口收籁央块标题:eMamrrgr4rnSweep(CDDPMODEDATAeAODtDATAJgIDATAPTFEHODOIIEBUSYCFFOFSTA恩本招生nw工艺I遁伯前一匚JS丁遇信_J开放式用户1.iE8Xm,i911t98.0.到点_JU5S_jMODBl调用选项.,电I二g三7iMODBl,qIiUHR务应背景数据块的界面,如下图8所示:图8调用MB.MASTER指令点击“确认”为该指令创建背景数据块后,并为各输入/输出引脚安排地址,如下图9所示:尔留意:、MB_
9、MASTER”指令的输入位“REQ”必需运用上升沿触发。以下以S7-12(X)作为ModbUSRTU主站,用F03功能码读取MOdbUSRTU从站2,从ModbUS地址40001起先的五个字,接收的数据存放在缓冲区DB3.DBW0起先区域为例。设置如下所示:MB_ADDR=2,MODE=O,DATA_ADDR=4000l,DATA_1.EN=5。地址对应关系如下表2所示:ModbusRTU主站CPUI2I5C数据缓冲区地址ModbusRTU从站Modbus地址DB3.DBW04(XX)IDB3.DBW240002DB3.DBW440003DB3.DBW640004DB3.DBW840005表2
10、Modbus地址对应关系%D82XM100-NBMSTeRJ8”TiU$TEP._JFl1FU11IIM102%lv110ODone,“Tag_6”“ag_4”XMIO3TPlPEQBUSY%h110.12-KIBDDrXMIo4“g-5,-MODEER*1,Tag,8,4CC01-DATAeADDP惴VMI25-DATA.1.EKSTATUStT肛9BOBMOBgoV.OPD5-DATPTP图9MB.MASTER指令MB_MASTER指令参数意义如下表3所示:引脚说明EN使能端REQ在上升沿执行该指令,恳求将数据发送或读取到Modbus从站MB_ADDRModbUSRTU从站地址。默认地址范
11、围:0至247:扩展地址范围:0至65535。值0被保留用于将消息广播到全部M(ibus从站。MODE模式选择:指定恳求类型DATA.ADDR从站中的起始地址:指定Modbus从站中将供访问的数据的起始地址。DTA.1.EN数据长度:指定要在该恳求中访问的位数或字数。DATA_PTR数据指针:指向要写入或读取的数据的M或DB地址(DB访问类型必需是标准与S7-300/400兼容)。DONE完成位:上一恳求已完成且没有出错后,DONE位将保持为TRUE一个扫描周期时间。BUSYO-无正在进行的MB.MASTER操作:】-MB_MASTER操作正在进行EEROR错误位:上一恳求因错误而终止后,ER
12、ROR位将保持为TRUE一个扫描周期时间。STATUS参数中的错误代码值仅在ERROR=TRUE的一个扫描周期内有效。STATUS错误代码表3MB_MASTER指令参数意义关于MoDE,DATA_ADDR,DATA_1.EN可在下表4中查看:MB_MASTERModbus功能Modbus地址参数地址类型Modbus数据长度参数Modbus功能模式0读取OOOOl到09999输出位1到2000Ol100OI到19999输入位I到20000230001到39999输入寄存器1到125044(XX)I到4999940(XX)l到465535(扩展)保持寄存器1到12503模式1O(XX)I至J099
13、99输出位】(单个位)05写入40001至U49999400001到465535(扩展)保持寄存器1(单个字)06O(XX)I到09999输出位2到19681540001到49999400001到465535(扩展)保持寄存器2到12316模式2有些Modhus从站不支持运用Modbus功能05H或06H写入单个位或字。在这样的状况下,可通过模式2强制运用Modbus功能I5H或16H写入单个位或字写入00001到09999输出位2到19681540001到49999400001到465535(扩展)保持寄存器1到12316模式Il读出从站的通信状态字和事务计数器:状态字指示指令的执行状态(0:未在执行:OxFFFF:正在执行)。每次胜利传送一条消息时,事务计数器值将递增。运用该功能时,忽视“MB_MASTER”指令的DATA_ADDR和DATA_1.EN参数。模式80通过读取错误代码(OXoooO)检查从站状态;每个恳求1个字模式81通过诊断代码OxOOOA复位从站的事务计数器