一种多功能机器人教学仿真工作站的制作方法

文档序号:29121509发布日期:2022-03-04 22:19阅读:180来源:国知局
一种多功能机器人教学仿真工作站的制作方法

1.本发明涉及多功能机器人教学领域,特别涉及一种多功能机器人教学仿真工作站。


背景技术:

2.随着劳动力成本不断上涨、制造业转型升级以及国家政策的大力扶持,我国工业机器人的需求量逐年上涨,近五年间,我国一直是全球第一大机器人应用市场,工业机器人它是一种融合人和机器优点的机械电子装置,它既能像人一样对周边作业环境迅速做出分析和判断,也能持续在恶劣环境下进行高精度工作。
3.人们对产品质量要求也越来越高,多功能机器人教学仿真工作站存在的数据库读取的输入给plc的数据实时显示在交互界面上,不能够准确监视数据和排查错误,系统内信号修改删除和强制值的功能不方便进行使用,系统还不便于跟踪虚拟调试的进展。
4.本

技术实现要素:

5.本发明的目的在于提供一种多功能机器人教学仿真工作站,以解决上述背景技术中提出的人们对产品质量要求也越来越高,多功能机器人教学仿真工作站存在的数据库读取的输入给plc的数据实时显示在交互界面上,不能够准确监视数据和排查错误,系统内信号修改删除和强制值的功能不方便进行使用,系统还不便于跟踪虚拟调试的进展。
6.为实现上述目的,本发明提供如下技术方案:一种多功能机器人教学仿真工作站,包括plc控制器、plc插件、信号配置模块,所述plc控制器为工作站内最核心的组成,所述plc控制器可编程逻辑控制器,具有输入电路、控制环节、输出电路,由cpu、存储器、用户编写的程序组成,所述plc控制器分别用于配置plc的类型、ip地址和端口,plc信号配置中有四种参数,read_item_count和write_item_count用于记录读plc和写plc信号的数量,read_item+序号和write_item+序号,表示具体的读写plc信号信息,可以添加多条信号,值由分号隔开,依次描述信号存储于redis数据库中的虚拟键名、plc输入/输出地址、信号名称,所述plc插件启动后通过profile类的getvalue()方法获取配置文件中信息,然后进行设备信息恢复。
7.优选的,所述plc插件启动后会加载配置文件中的plc型号、ip地址和端口,然后可以通过,连接、断开,按钮来控制与目标plc的通信状态,所述信号配置模块是plc信号与其它设备信号交互的模块,是整个plc交互界面的核心,信号配置模块中使用了两个listview控件对plc的输入输出信号配置和显示,在列表的右击菜单中选择,添加,功能会弹出添加信号界面,填写信号的名称、信号对应的redis虚拟键名、plc的输入/输出地址和当前信号值,确定添加后一条信号的详细信息会显示在列表中,输入列表中的当前值为redis中存储的其它设备的信号值。
8.优选的,所述信号值会写入列表中配置的plc输入地址中,输出列表中的当前值为列表中描述的plc输出地址的信号值,该值会存储于配置中的redis键名中,通过,启动,按钮来运行plc插件,通过,停止,按钮结束plc插件,插件停止时plc的配置信息会通过析构函
数保存到配置文件中。
9.优选的,所述plc插件后台使用线程池开辟了三个线程来完成主要业务,分别为读plc线程、写plc线程和更新界面线程,读plc线程的任务是利用plc驱动中的读数据接口采集plc的寄存器数据,之后将数据存储于redis数据库中,写plc线程的任务是读取redis数据库中其它设备的数据,然后写入指定的plc寄存器中。
10.优选的,所述plc插件内的多个线程同时访问共享资源将会导致程序异常甚至崩溃,这时需要对线程进行合理分配并实现线程同步,首先需要向操作系统申请对象锁,该对象锁处于释放状态,那么该线程可以立即获取对象锁并且访问该对象,如果对象锁处于被占用状态,表明其它线程在访问该对象,当前线程会处于阻塞状态,直到其它线程执行完任务释放对象锁,该线程才能获取对象锁并访问该对象,后台程序中采用monitor静态类实现线程同步,对象为plcplc插件中的共享数据,使用线程池创建读plc控制器线程、写plc控制器线程和更新界面线程三个线程,每个线程的任务都嵌套在while循环中,执行任务前都需要执行monitor.enter()语句,如果能获得对象锁则执行任务,任务执行完毕后使用monitor.exit()语句释放对象锁,对象锁被占用则进入下一个循环等待锁被释放后再执行任务,如法炮制,保证了同一时间只能有一个线程访问plc插件的共享资源,因为每个线程任务执行时间较短,所以线程同步不会造成很大的数据延迟。
11.优选的,所述plc插件内启动宿主程序来加载该插件,插件加载后会将配置文件中的信息载入交互界面,如果配置中的连接信息与目标机一致,则通过,连接,按钮连接plc,否则更改连接信息后再尝试连接,成功连接plc后,在信号配置列表中添加或更改虚拟调试信号,信号配置完成之后通过,启动,按钮运行plc插件。
12.优选的,所述plc插件一方面读plc线程读取plc寄存器数据并写入redis数据库,同时更新界面线程实时显示采集的plc寄存器数据,另一方面写plc线程读取所配置的redis数据库中信号值并写入plc目标寄存器中,同时更新界面线程实时显示所读取redis数据库中的信号值,循环往复,直到虚拟调试任务完成则通过,停止,按钮结束plc插件。
13.本发明的技术效果和优点:系统列表的右击菜单中不仅能够添加信号,还具有信号修改、删除和强制值的功能,日志模块用于记录设备的启动、停止、异常等信息,便于跟踪虚拟调试的进展,更新界面线程的任务是将采集到的plc寄存器数据和从redis数据库读取的输入给plc的数据实时显示在交互界面上,从而能够监视数据和排查错误,本系统节省空间、编程简单、响应速度快、后期维护方便。
附图说明
14.图1为本发明的配置信息结构示意图。
15.图2为本发明的线程池工作结构示意图。
16.图3为本发明的插件流程结构示意图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
18.具体实施例一:
19.如图1所示,包括plc控制器、plc插件、信号配置模块,plc控制器为工作站内最核心的组成,plc控制器可编程逻辑控制器,具有输入电路、控制环节、输出电路,由cpu、存储器、用户编写的程序组成,plc控制器分别用于配置plc的类型、ip地址和端口,plc信号配置中有四种参数,read_item_count和write_item_count用于记录读plc和写plc信号的数量,read_item+序号和write_item+序号,表示具体的读写plc信号信息,可以添加多条信号,值由分号隔开,依次描述信号存储于redis数据库中的虚拟键名、plc输入/输出地址、信号名称,plc插件启动后通过profile类的getvalue()方法获取配置文件中信息,然后进行设备信息恢复,plc插件启动后会加载配置文件中的plc型号、ip地址和端口,然后可以通过,连接、断开,按钮来控制与目标plc的通信状态,信号配置模块是plc信号与其它设备信号交互的模块,是整个plc交互界面的核心,信号配置模块中使用了两个listview控件对plc的输入输出信号配置和显示,在列表的右击菜单中选择,添加,功能会弹出添加信号界面,填写信号的名称、信号对应的redis虚拟键名、plc的输入/输出地址和当前信号值,确定添加后一条信号的详细信息会显示在列表中,输入列表中的当前值为redis中存储的其它设备的信号值,信号值会写入列表中配置的plc输入地址中,输出列表中的当前值为列表中描述的plc输出地址的信号值,该值会存储于配置中的redis键名中,通过,启动,按钮来运行plc插件,通过,停止,按钮结束plc插件,插件停止时plc的配置信息会通过析构函数保存到配置文件中,系统列表的右击菜单中不仅能够添加信号,还具有信号修改、删除和强制值的功能,日志模块用于记录设备的启动、停止、异常等信息,便于跟踪虚拟调试的进展。
20.具体实施例二:
21.如图2所示,plc插件后台使用线程池开辟了三个线程来完成主要业务,分别为读plc线程、写plc线程和更新界面线程,读plc线程的任务是利用plc驱动中的读数据接口采集plc的寄存器数据,之后将数据存储于redis数据库中,写plc线程的任务是读取redis数据库中其它设备的数据,然后写入指定的plc寄存器中,plc插件内的多个线程同时访问共享资源将会导致程序异常甚至崩溃,这时需要对线程进行合理分配并实现线程同步,首先需要向操作系统申请对象锁,该对象锁处于释放状态,那么该线程可以立即获取对象锁并且访问该对象,如果对象锁处于被占用状态,表明其它线程在访问该对象,当前线程会处于阻塞状态,直到其它线程执行完任务释放对象锁,该线程才能获取对象锁并访问该对象,后台程序中采用monitor静态类实现线程同步,对象为plcplc插件中的共享数据,使用线程池创建读plc控制器线程、写plc控制器线程和更新界面线程三个线程,每个线程的任务都嵌套在while循环中,执行任务前都需要执行monitor.enter()语句,如果能获得对象锁则执行任务,任务执行完毕后使用monitor.exit()语句释放对象锁,对象锁被占用则进入下一个循环等待锁被释放后再执行任务,如法炮制,保证了同一时间只能有一个线程访问plc插件的共享资源,因为每个线程任务执行时间较短,所以线程同步不会造成很大的数据延迟,更新界面线程的任务是将采集到的plc寄存器数据和从redis数据库读取的输入给plc的数据实时显示在交互界面上,从而能够监视数据和排查错误。
22.具体实施例三:
23.如图3所示,plc插件内启动宿主程序来加载该插件,插件加载后会将配置文件中
的信息载入交互界面,如果配置中的连接信息与目标机一致,则通过,连接,按钮连接plc,否则更改连接信息后再尝试连接,成功连接plc后,在信号配置列表中添加或更改虚拟调试信号,信号配置完成之后通过,启动,按钮运行plc插件,plc插件一方面读plc线程读取plc寄存器数据并写入redis数据库,同时更新界面线程实时显示采集的plc寄存器数据,另一方面写plc线程读取所配置的redis数据库中信号值并写入plc目标寄存器中,同时更新界面线程实时显示所读取redis数据库中的信号值,循环往复,直到虚拟调试任务完成则通过,停止,按钮结束plc插件,本系统节省空间、编程简单、响应速度快、后期维护方便。
24.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1