版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
变频器通信连接重庆电子工程职业学院01通信指令03任务练习02程序设计040506一通信指令
本任务采用西门子S7-1200与TD500通过ModbusRTU通信。Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0~247,其中0为广播地址,从站的实际地址范围为1-247。
ModbusRTU通信以主从的方式进行数据传输,ModbusRTU主站是主动方,即主站发送数据请求报文到从站,ModbusRTU从站返回响应报文。一、通信指令(一)概述
S7-1200以下模块支持ModbusRTU通信:通信模块CM1241RS232作为ModbusRTU主站时,只能与一个从站通信。通信模块CM1241RS485作为ModbusRTU主站时,则允许建立最多与32个从站的通信。使用通信板CB1241RS485时,CPU固件必须为V2.0或更高版本,且使用软件必须为STEP7BasicV11或STEP7ProfessionalV11以上更高版本。一、通信指令(一)概述1.V4版本的ModbusRTU指令功能更新
(1)Modbus_Master指令变化:DATA_PTR接口的DB可以支持"优化块访问"
(2)Modbus_Slave指令变化:MB_HOLD_REG接口的DB可以支持"优化块访问"可以选择对输入输出过程映像区的读访问限制可以自定义访问DB中的数据区域,而不是默认的IQ区与MB_HOLD_REG一、通信指令(二)通信指令2.ModbusRTU指令和Modbus指令的区别
(1)ModbusRTU指令:新版ModbusRTU指令,该指令除了支持CM1241通信模块、CB1241通信板,还支持PROFINET或PROFIBUS分布式I/O机架上的PTP通信模块实现ModbusRTU通信,比如ET200上面的串口模块。
(2)Modbus指令:早期ModbusRTU指令,仅可通过CM1241通信模块或CB1241通信板进行ModbusRTU通信,不支持远程IOMODBUSRTU通信。一、通信指令(二)通信指令3.MB_COMM_LOAD指令
“MB_COMM_LOAD”指令用于组态端口使用ModbusRTU协议来通信。为此,可使用以下硬件:最多三个点对点模块(PtP)CM1241RS485或CM1241RS232还应该有一个通信板CB1241RS485
组态该端口后,可通过执行“MB_SLAVE”或“MB_MASTER”指令以通过Modbus进行通信。一、通信指令(二)通信指令
MB_COMM_LOAD指令参数一、通信指令(二)通信指令参数和类型数据类型描述REQINBool在上升沿执行指令PORTINPort安装并组态CM或CB通信设备之后,端口标识符将出现在PORT功能框连接的参数助手下拉列表中BAUDINUDInt波特率选择:300、600、1200、2400、4800、9600、19200、38400、57600、76800、115200,其它所有值均无效PARITYINUInt奇偶校验选择:•0–无1–奇校验2–偶校验FLOW_CRTL、RST_ON_DLY、RST_OFF_DLY、RESP_TOINUInt这4个灰色的引脚,是用于RS232通信的,在这里不使用MB_DBINVariant对MB_MASTER或MB_SLAVE指令所使用的背景数据块的引用。在用户的程序中放置MB_SLAVE或MB_MASTER后,该DB标识符将出现在MB_DB功能框连接的参数助手下拉列表中。DONEOUTBool指令的执行已完成且未出错ERROROUTBool错误状态显示,0---无错误,1---有错误STATUSOUTWord端口组态错误代码4.MB_MASTER指令
“MB_MASTER”指令允许程序作为Modbus主站使用点对点模块(CM)或通信板(CB)上的端口进行通信。可以访问一个或多个Modbus从站设备中的数据。
如果需要“MB_MASTER”与某个端口进行通信,则必须首先执行“MB_COMM_LOAD”。
当在程序中插入“MB_MASTER”指令时,将创建背景数据块。在“MB_COMM_LOAD”指令的MB_DB输入参数中指定该背景数据块。一、通信指令(二)通信指令4.MB_MASTER指令
(1)Modbus主站通信规则用于Modbus主站请求的端口不能用于“MB_SLAVE”。如果使用相同的背景数据块,则端口可用于一个或多个“MB_MASTER”调用。Modbus指令不使用通信中断事件来控制通信过程。程序必须针对已完成的发送和接收操作轮询“MB_MASTER”指令。调用指令:如果可能,在循环程序OB中调用“MB_MASTER”指令。只能在延时或循环中断OB中调用该指令。不要在优先级不同的组织块中调用多个“MB_MASTER”指令。如果MB_MASTER”指令在更高优先级“抢先”执行,则指令可能将错误地执行。不要在启动、诊断或时间错误OB中调用“MB_MASTER”指令。传送启动后,EN参数(LAD/FBD)必须保持设置为值“1”,直到指令将DONE或ERROR输出参数设置为“1”为止。指令执行过程中REQ参数更新调用将导致错误。指令执行后,REQ参数在背景数据块中的BLOCKED_PROC_TIMEOUT参数指定的时间内保持置位。如果“MB_MASTER”将请求发送到从站,则确保“MB_MASTER”继续执行,直至从站返回的响应到达。一、通信指令(二)通信指令
(2)MB_MASTER指令参数一、通信指令(二)通信指令参数和类型数据类型描述REQINBool0=无请求1=请求将数据传送到Modbus从站MB_ADDRINUSInt/UIntModbusRTU站地址:标准寻址范围(1到247)扩展寻址范围(1到65535)值0被保留用于将消息广播到所有Modbus从站。只有Modbus功能代码05、06、15和16是可用于广播的功能代码。MODEINUSInt模式选择:指定请求类型(读、写或诊断)。DATA_ADDRINUDInt从站中的起始地址DATA_LENINUInt数据长度DATA_PTRINVariant数据指针:指向要写入或读取的数据的M或DB地址(未经优化的DB类型)。DONEOUTBool0:事务未完成;1:事务完成,且无任何错误BUSYOUTBool0:当前没有“MB_MASTER”事务正在处理中;1:“MB_MASTER”事务正在处理中ERROROUTBool0:无错误;1:出错,错误代码由参数STATUS来指示STATUSOUTWord执行条件代码
(3)MODE参数、功能代码和Modbus地址范围间的关系一、通信指令(二)通信指令MODEModbus功能数据长度操作和数据Modbus地址011至2000读取输出位:1到(1992或2000)个位/查询1至9999021至2000读取输入位:1到(1992或2000)个位/查询10001至19999031至125读取保持寄存器:1到(124或125)个WORD/查询40001至49999或者400001至465535041至125读取输入WORD:1到(124或125)个WORD/查询30001至39999151写入输出位:一个位/查询1至9999161写入保持寄存器:1个WORD/查询40001至49999或者400001至4655351152至1968写入多个输出位:2到(1960或1968)个位/查询1至99991162至123写入多个保持寄存器:2到(122或123)个WORD/查询40001至49999或者400001至4655352151至1968写入一个或多个输出位:1到(1960或1968)个位/查询1至99992161至123写入一个或多个保持寄存器:1到(122或123)个WORD/查询40001至49999或者400001至4655355.MB_SLAVE指令“MB_SLAVE”指令允许程序作为Modbus从站使用点对点模块(PtP)或通信板(CB)上的端口进行通信。ModbusRTU主站可发出请求,然后程序可通过“MB_SLAVE”执行进行响应。
在程序中插入“MB_SLAVE”指令时,必须分配唯一的背景数据块。当在“MB_COMM_LOAD”指令的MB_DB参数中指定背景数据块时,将使用该背景数据块。一、通信指令(二)通信指令
5.MB_SLAVE指令
(1)Modbus从站通信规则必须先执行MB_COMM_LOAD组态端口,然后MB_SLAVE指令才能通过该端口通信。如果某个端口作为从站响应Modbus主站,则请勿使用MB_MASTER指令对该端口进行编程。对于给定端口,只能使用一个MB_SLAVE实例,否则将出现不确定的行为。Modbus指令不使用通信中断事件来控制通信过程。用户程序必须通过轮询。MB_SLAVE指令以了解传送和接收的完成情况来控制通信过程。MB_SLAVE指令必须以一定的速率定期执行,以便能够及时响应来自Modbus主站的进入请求。建议每次扫描时都从程序循环OB执行MB_SLAVE。也可以从循环中断OB执行MB_SLAVE,但并不建议这么做,因为中断例程的延时过长可能会暂时阻止其它中断例程的执行。MB_SLAVE的执行频率取决于Modbus主站的响应超时时间。一、通信指令(二)通信指令
(2)MB_SLAVE指令参数一、通信指令(二)通信指令参数和类型数据类型描述MB_ADDRINUSInt/UIntModbus从站的站地址(地址范围:0至255)MB_HOLD_REGINVariant指向Modbus保持寄存器DB的指针NDROUTBool新数据就绪,0:无新数据;1:表明Modbus主站已写入新数据DROUTBool数据读取,0:未读取数据;1:表明Modbus主站已读取数据ERROROUTBool0:未检测到错误;1:错误,相应的错误代码在STATUS中输出STATUSOUTWord执行错误代码二程序设计
新建Modbus轮询[FBx]函数块,并在函数块的程序段1添加初始化指令MB_COMM_LOAD,仅在第一次扫描期间对RS485模块通信端口进行一次组态/初始化。(一)Modbus主站程序部分示例二、程序设计
使用一个MB_MASTER指令,以与单个从站#3(变频器)进行通信,将"Modbus_DB".Write_DATA[0]开始的1个数据写入从站#3的1001H(4097)中。(一)Modbus主站程序部分示例二、程序设计
使用一个MB_MASTER指令,以与单个从站(变频器)进行通信,从从站#3的位置44098读取7个寄存器数据到DB数组Modbus_DB".Read_DATA_moto1中。44098对应参数地址的1002H‘4098’单元。
将开始的1个数据写入从站上的1001H(4097)。(一)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 定制生产人用膳食补充剂行业营销策略方案
- 便携式空调器产品供应链分析
- 广告设计专业实习报告
- 电动滑板车电动车辆项目运营指导方案
- 典当行业相关项目经营管理报告
- 工业废气污染控制用催化焚烧炉产业链招商引资的调研报告
- 幼儿和婴儿用次性游泳尿裤产品供应链分析
- 血液分析仪器市场分析及投资价值研究报告
- 女士香水产业链招商引资的调研报告
- 仓库出租行业经营分析报告
- 3.8形状改变了(教学课件)科学二年级上册
- 第03讲:段落作用(练习)-2024年中考语文记叙文阅读讲与练(全国)原卷版
- 2024陕西煤业化工物资集团限公司招聘12人高频考题难、易错点模拟试题(共500题)附带答案详解
- 2023-2024学年北京市通州区九年级(上)期中数学试卷【含解析】
- 速冻食品安全风险管控清单
- 遥感地学应用04-水体和海洋遥感
- DL∕T 2014-2019 电力信息化项目后评价
- 安全治本攻坚三年行动方案及重大事故隐患会议纪要(完整版)
- 东营山东东营市中医院(东营市传染病医院东营市精神卫生中心)招聘46人笔试历年典型考题及考点附答案解析
- 高级流行病学与医学统计学智慧树知到期末考试答案章节答案2024年浙江中医药大学
- 油烟管道系统清洗合同
评论
0/150
提交评论