🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
*** ## 函数目录 [TOC] *** python有两种控制器方式可与VSR连接和编程,分别为Mbus-S普通控制器和Mbus-R系列机器人控制器。两种控制器分别功能和特点如下: >Mbus-S与Mbus-R的区别既是:Mbus-R4具有机械臂的标准虚拟接口,可以直接操作控制机械臂,而Mbus-S则有8个自定义的虚拟电机。 *** ## Mbus-R4 初始化函数 **图形模块**: >![](https://img.kancloud.cn/44/3c/443cb2f7519fb029be58778925702987_458x57.png) **功能**:将控制器初始化为Mbus-R4控制器。 **说明**:`import ZtModTcp`库文件包含,必须添加. `mod_client=ZtModTcp(1,502,0) `建立名为`mod_cloient`的`ZtModTcp()`实例。 `ZtModTcp(id, port=502, type = 1) ` 参数:id连接编号;Port 端口号,默认端口502;type控制器类型,0为Mbus-S型,1为Mbus-R型。 ``` import ZtModTcp mod_client=ZtModTcp(1,502,1) ``` *** ## IO输出操作 **图形模块**: >![](https://img.kancloud.cn/08/c3/08c32d3c0092fdd3b49e2bece4c72541_282x39.png) **功能**:控制虚拟IO口输出高/低电平。 **说明**:`digital_VSR_Write(pin, val)`pin: 引脚编号0-31;val: 写入值 0或1。 **示例**: ``` mod_client.digital_VSR_Write(0,0) ``` *** ## IO输入引脚读取 **图形模块**: >![](https://img.kancloud.cn/a6/74/a67460222c2ac5e9bfdb870c807ad41a_174x36.png) **功能**:读取虚拟IO口输入电平。 **说明**:`digital_VSR_Read(pin, val)`pin: 引脚编号0-31。 **示例**: ``` mod_client.digital_VSR_Read(0,0) ``` *** ## 软IO中断操作 ### 功能解释 **图形模块**: 定义中断回调函数 >![](https://img.kancloud.cn/68/ac/68ac9925b08688320f59a75b9608398d_220x61.png) 配置软中断并开启 >![](https://img.kancloud.cn/83/c7/83c7e1506aea56b8f4b5ed47b0246f6f_353x39.png) 关闭软中断 >![](https://img.kancloud.cn/64/3b/643bb6f3a2a30a7e6b586f8e9a033eca_258x39.png) **功能**:该组操作函数为:(1)开启某IO引脚为输入状态并检测中断;(2)、当该IO引脚发生中断自动执行某函数;(3)、关闭某IO引脚中断功能。 **开启IO软中断**: `digital_VSR_AttachInterrupt(pin,func,mode)`设置软中断Pin:中断管脚0-31;func:中断回调函数;mode:中断模式mod_client.RISING上升沿mod_client.FALLIN下降沿mod_client.CHANGE 改变。 **关闭IO软件中断**: `digital_VSR_InterruptDisable(pin)`关闭引脚软中断。pin:引脚编号0-31。 ### 示例 >![](https://img.kancloud.cn/a1/c3/a1c3462f444357a1bf7e2c19383b3f00_458x279.png) *** ``` #定义VSR_AttachPinInterrupt_fun_0函数,执行中断任务 def VSR_AttachPinInterrupt_fun_0(): # 触发中断后1管脚输出高电平 mod_client.digital_VSR_Write(1,1) #开启IO引脚0软中断,上升沿触发,调用VSR_AttachPinInterrupt_fun_0()函数 mod_client.digital_VSR_AttachInterrupt (0,VSR_AttachPinInterrupt_fun_0,mod_client.RISING) ``` ``` #关闭0管脚软中断 mod_client.digital_VSR_InterruptDisable(0) ``` ***![](https://img.kancloud.cn/7a/f3/7af38ca97886b4e290ed6114d0df0cf6_262x39.png) ## 模拟量输出控制 **图形模块**: > **功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制。 **说明**:`Float32_Write(pin,val)`向虚拟模拟量输出口。pin:模拟量引脚,0-7;val:模拟量值。 ``` mod_client.Float32_Write(0,0) ``` *** ## 模拟量输入读取 **图形模块**: >![](https://img.kancloud.cn/ae/af/aeaf4b83f63479cbc9e68fd4e52b24e3_162x36.png) **功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等; **说明**:`Float32_Read(pin)`读取虚拟模拟量。pin:模拟量引脚0-7;返回模拟量值。 ``` mod_client.Float32_Read(0) ``` *** ## 设置四轴码垛机器人运行速度 **图形模块**: >![](https://img.kancloud.cn/4e/f2/4ef2dcbf60a3bec219474a7e08938699_294x39.png) **功能**:设置四轴码垛类型机器人的运行速度值。 **说明**:`Set_R4Speed(speed)`speed:运行速度。 ``` mod_client.Set_R4Speed(0) ``` *** ## 四轴码垛机器人单轴动作 **图形模块**: >![](https://img.kancloud.cn/72/97/72971d38c0b7ea1ea60ce996357197c6_310x39.png) **功能**:设置四轴码垛机器人某一个关节轴运行到某一点动作; **说明**:`Set_R4SerialPos(motor, pos)`motor:轴编号,0-3;pos:运动位置。 ``` Set_R4SerialPos(0, 0) ``` *** ## 四轴码垛机器人本体动作 **图形模块**: >![](https://img.kancloud.cn/96/22/962284d7b20ce6e28c480db20a9d1c95_184x158.png) **功能**:设置四轴码垛机器人四个轴联动运行到某一个姿态点; **说明**:`Set_R4Pos(pos1, pos2, pos3, pos4)`pos1, pos2, pos3, pos4四个轴的运动位置。 ``` Set_R4Pos(pos1, pos2, pos3, pos4) ``` *** ## 获取四轴码垛机器人某轴的位置值 **图形模块**: >![](https://img.kancloud.cn/ae/f9/aef9e9dc9c9bf74d526f5855b85961be_311x25.png) **功能**:获取该机器人某一个轴的位置角度值; **说明**:`Get_R4Pos(motor)`返回轴位置角度值;motor:轴编号0-3。 ``` mod_client.Get_R4Pos(0) ``` *** ## 等待四轴码垛机器人上一个动作执行完毕 **图形模块**: >![](https://img.kancloud.cn/41/02/41023f551d6bb192b62dbe31ce0218ad_229x28.png) **功能**:等待该动作完全执行完毕,才进行下面的代码运行(中断除外); **说明**:`WaitFinish_R4()` ``` mod_client.WaitFinish_R4() ``` ***