当前位置:    首页  平台入口  智能机械制造系统计划与执行综合实验
实验环节3 图像检测搬运单元的MODBUS通讯实验
发布部门: 机械装备智能制造虚拟仿真实验教学中心  发布时间: 2021-01-28  浏览次数: 13

图像检测搬运单元的MODBUS通讯实验

 

1.1.1  实验目的

1、了解并掌握CCD视觉识别实验的原理

2、掌握图像处理的基本方法

3、了解Modbus通信的基本原理;

4、掌握计算机软件与总线桥通信的原理和方法。

1.1.2  实验设备

1、制造物联实验平台一套;

2、MODBUS串口通讯软件。

3、计算机一台(带RS485串口接口)。

1.1.3  实验原理

图像检测搬运单元实验包括两部分。第一部分为CCD的颜色识别系统,用来对摄像头采集到的视频进行归整处理,实验方法及步骤参考图像处理单元实验。本次实验主要介绍CCD软件与总线桥之间的MODBUS通信。

MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从1979年出现工业串行链路的事实标准以来,MODBUS使成千上万的自动化设备能够通信。目前,继续增加对简单而雅观的MODBUS结构支持。

当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法

Modbus采用查询应答的消息交流传输,查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。

1.1.4 实验步骤

1、关闭气泵气路开关,启动气泵到预定压力后开启气路开关;

2、将嵌入式计算机的COM1口与用户计算机连接(本次试验时需要用户自己提供计算机一台,目的是利用该计算机与本单元嵌入式计算机通过串口采用MODBUS协议进行通信);

3、打开控制箱的电源开关;

4、打开嵌入式计算机桌面上的cfd.exe软件,点击菜单项的控制->机械手与旋转料库,弹出现如1-5-1所示的一个对话框;

 

1-5-1 PLC控制界面

5、此对话框是将本单元作为独立单元调试用,对话框上面两行实时显示机械手与料库的位置(在系统复位后,该项有意义),首先打开此界面后应该点击界面右下角的“回零位置1”,等待机械手后料库都停止后“回零位置2”按钮变为有效,接着点击该按钮,待机械手和料库再次停止后,整个系统便完成复位动作。另外还可在机械手和料库动作的时候查看各个传感器是否工作正常,各传感器的状态在本对话框中以指示灯的形式显示,其中绿色表示无效状态,红色表示有效状态

6、接着用户可以点击界面中其它相应按钮查看系统其它动作。可以手动按压孔深检测传感器的探头检查孔深检测装置是否工作正常,经过以上各个步骤的调试完成后,可以进行以下实验,注意以下指令的发送要通过MODBUS协议,可以借助下文介绍的ModbusTest软件完成相应的功能

7、系统各个子单元是靠通信和总控PLC连接起来的,通过总控单元下发各个不同指令,下面的从单元接收到相应的指令后再完成相对应动作和回传本单元当前状态的相应指令,该单元与系统通信的所有指令如表1-5-1所示。在这里,以下表1-5-1为例简单介绍系统工作原理,1-5-1为发送命令的含义;

1-5-1 发送命令的含义

发送的数据

含义

备注(二进制)

1

通讯连接

0000 0001(一直保持有效)

3

复位

0000 0011

5

启动

0000 0101

9

停止

0000 1001

17

工件输出

0001 0001

 

8、各数据发送的顺序,首先发送联机信号1(该信号在发送其它信号的时候需要一直保持有效),通过总线桥建立本单元与计算机的通讯连接;

9、联机后,首先发送3,转盘和机械手进行回零操作,等待运动停止,即复位完成;

10、复位完成后,将工件放入转盘位于CCD检测装置对面的仓位中(初始工位),回传发送5,转盘逆时针旋转90°至孔深检测处,系统对工件进行孔深检测,判断孔深是否合格;

11、检测完毕,托盘逆时针旋转90°,至CCD摄像头下停止,等待视觉检测;

12、检测完成后,延时1s,转盘旋转到输出工位,系统请求输出;

13、等待1秒,发送17,机械手启动,抓取工件并将工件运送至下个单元(落料单元)旋转料仓中;

14、运送到位后机械手返回,输出响应动作完毕;

15、步骤6为系统复位过程,步骤7~11为系统运行过程。如需反复运行,请确认请求输出工位无工件,并将工件置于初始工位,重复步骤7~11即可;

16、在运行过程中,可以发送9停止系统运行。系统停止后,必须先复位才能进行其它操作;

17、为了让学生更好地理解modbus与总线桥的通信过程,可采用ModbusTest测试软件来给PLC发送命令,如1-5-2所示;

 

1-5-2   ModbusTest通讯测试界面

18、设置好通讯串口(COM1),串口速率(9600),数据位(8),校验方式(无),停止位(1)等,打开串口(Open);

19、SEND 输入框中输入011000000001020001+(CRC校验)(该数据为16进制格式,CRC软件自动添加),点击send 按钮,即从串口发送了一串串口数据通过总线桥转换为PROFIBUS协议传到总控S7-300 PLC;

011000000001020001的含义如下(从左到右顺序解释各位含义):

01表示第1号从站(数据长度占1个字节);

10为写多个寄存器(数据长度占1个字节);

0000指写入起始地址为0(数据长度占2个字节);

0001 指写入寄存器数量为1个字(数据长度占2个字节)

0001为写入的内容为1,表示为二进制0000 0000 0000 0001(数据长度占2个字节);

因此,该条指令的含义为:向第1号分站的写入1,即向嵌入式发送联机请求。其它写入指令请根据通讯配置表自行理解其含义。

20、例如:在SEND 输入框中输入011000000001020003+(CRC校验),查询返回信息为011000000001+(CRC校验),表示向嵌入式发送联机复位指令,嵌入式收到该指令后本单元开始复位;下面是对返回数据的解释:

011000000002+(CRC校验)的含义如下:

01表示第1号从站(数据长度占1个字节);;

10为从站反馈收到写入指令(数据长度占1个字节);;

0000表示反馈收到写入的起始地址为0(数据长度占2个字节);;

0002表示反馈收到写入的寄存器数量为1个字,共2字节;(数据长度占2个字节);

用户也可以向嵌入式发送读取指令用来查询本单元的当前状态,例如用户可以发送16进制数据010400000001+(CRC校验),其含义如下:

01表示第1号从站(数据长度占1个字节);

04为读取输入寄存器(数据长度占1个字节);

0000指起始地址(数据长度占2个字节);

0001指读取输入寄存器数量为1个字,共2字节(数据长度占2个字节);

发送本条指令后,在ModbusTest中可以收到相应反应本单元当前状态的数据,例如:收到数据为0104010002,其含义如下:

01表示第1号从站(数据长度占1个字节);

04为从站反馈收到读取指令(数据长度占1个字节);

02表示反馈收到需要读取数据的字节数为2个字节(数据长度占1个字节)

0005表示反馈回来的数据(数据长度占2个字节);

其中收到返回数据位的最后四位0005,二进制为形式 0000 0000 0000 00101对照1-6-1输出部分可知,表示本单元已经联机并且复位完成;

21、采用本软件可以控制本单元的运行及查看本单元的当前运行状态。在系统运行过程中,发送查询命令时间点不同或放入工件不同,有可能出现返回数据与实验给出数据不完全一致。请结合通讯配置表自行分析其含义;



联系方式 网站地图 留言板
李立伟设计
地址:郑州市东风路5号郑州轻工业学院机电工程学院    邮编:450002    电话:0371-63556785