久秉包子机器人项目

久秉包子机器人项目


模块1:冰库

<p>[TOC]</p> <h5>函数名称</h5> <ul> <li>Ice Storage Institution Control 模块ID号为1。</li> </ul> <h5>简要描述</h5> <ul> <li>冰库机构控制 冰库电机机构</li> </ul> <p>输出: 1.冰库旋转电机 2.冰库水平电机 3.冰库垂直电机 4.冰库门电机</p> <p>输入: 1.冰库门上传感器 2.冰库门下传感器 3.冰库水平电机前传感器 4.冰库水平电机后传感器 5.冰库垂直电机上传感器 6.冰库垂直电机下传感器 7.冰库旋转电机传感器</p> <p>功能:</p> <p>1. 冰库门通过电机上升和下降,达到冰库的开门和关门。同时到上下传感器停止,上下传感器为限位,禁止过限位。 2. 传送带定时旋转 3. 辅料电机1定时旋转 4. 辅料电机2定时旋转 5. 辅料电机3定时旋转 6. 辅料电机4定时旋转 7. 辅料电机5定时旋转 8. 电推杆在后限位传感器时互锁关,电推杆没在后限位位置时,互锁开。 9. 互锁输入高,电推杆不执行,互锁输入低,电推杆伸出执行。</p> <p>1. 电推杆单独伸出与缩回, 2. 获取传感器值 3. 设置传送带运行时间 4. 设置辅料旋转时间 5. 传送带旋转 6. 辅料电机旋转</p> <h4>包子类型</h4> <table> <thead> <tr> <th style="text-align: left;">序号</th> <th style="text-align: left;">包子类型</th> <th style="text-align: left;">包子类型编号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">1</td> <td style="text-align: left;">包子(黑猪肉)</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">2</td> <td style="text-align: left;">包子(梅干菜鲜肉)</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">3</td> <td style="text-align: left;">包子(大姐包的)</td> <td style="text-align: left;">3</td> </tr> </tbody> </table> <h4>硬件连接</h4> <table> <thead> <tr> <th style="text-align: left;">输出</th> <th style="text-align: left;"></th> <th style="text-align: left;"></th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">1</td> <td style="text-align: left;">电推杆方向</td> <td style="text-align: left;">DO_0</td> </tr> <tr> <td style="text-align: left;">2</td> <td style="text-align: left;">电推杆使能</td> <td style="text-align: left;">DO_1</td> </tr> <tr> <td style="text-align: left;">3</td> <td style="text-align: left;">辅料电机1</td> <td style="text-align: left;">DO_2</td> </tr> <tr> <td style="text-align: left;">4</td> <td style="text-align: left;">辅料电机2</td> <td style="text-align: left;">DO_3</td> </tr> <tr> <td style="text-align: left;">5</td> <td style="text-align: left;">辅料电机3</td> <td style="text-align: left;">DO_4</td> </tr> <tr> <td style="text-align: left;">6</td> <td style="text-align: left;">辅料电机4</td> <td style="text-align: left;">DO_5</td> </tr> <tr> <td style="text-align: left;">7</td> <td style="text-align: left;">辅料电机5</td> <td style="text-align: left;">DO_6</td> </tr> <tr> <td style="text-align: left;">8</td> <td style="text-align: left;">传送带带</td> <td style="text-align: left;">DO_7</td> </tr> <tr> <td style="text-align: left;">9</td> <td style="text-align: left;">互锁输出</td> <td style="text-align: left;">DIR+</td> </tr> </tbody> </table> <table> <thead> <tr> <th style="text-align: left;">输入</th> <th style="text-align: left;"></th> <th style="text-align: left;"></th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">1</td> <td style="text-align: left;">固体电推杆前接近开关</td> <td style="text-align: left;">DI_0</td> </tr> <tr> <td style="text-align: left;">2</td> <td style="text-align: left;">固体电推杆后接近开关</td> <td style="text-align: left;">DI_1</td> </tr> </tbody> </table> <h5>读取输入状态</h5> <p>读取传感器状态、</p> <h5>读取传感器状态命令举例</h5> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">离散输入寄存器地址</th> <th style="text-align: left;">读取数量</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x02</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <p>ID号:每个模块板子有一个独立的编号,范围为1~255,一个字节。 命令:02命令为读取离散输入量,一个字节。 地址:模块离散输入寄存器地址,两个字节,高字节在前,低字节在后。 读取数量:读取离散输入寄存器的数量,两个字节,高字节在前,低字节在后。</p> <table> <thead> <tr> <th style="text-align: left;">线圈地址</th> <th style="text-align: left;">描述</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">2000(0x07d0)</td> <td style="text-align: left;">DI_0输入状态</td> <td>固体电推杆前接近开关,读取传感器值0为在位,1为不在位</td> </tr> <tr> <td style="text-align: left;">2001(0x07d1)</td> <td style="text-align: left;">DI_1输入状态</td> <td>固体电推杆后接近开关,读取传感器值0为在位,1为不在位</td> </tr> </tbody> </table> <h5>通信设置</h5> <p>485总线,波特率为115200,8数据位,1停止位,无奇偶校验,采用modbus_rtu通讯协议,支持02,03,06命令,详细请参见modbus文档。 读取传感器状态、</p> <h5>读取传感器状态命令举例</h5> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">离散输入寄存器地址</th> <th style="text-align: left;">读取数量</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x02</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <p>ID号:每个模块板子有一个独立的编号,范围为1~255,一个字节。 命令:02命令为读取离散输入量,一个字节。 地址:模块离散输入寄存器地址,两个字节,高字节在前,低字节在后。 读取数量:读取离散输入寄存器的数量,两个字节,高字节在前,低字节在后。</p> <table> <thead> <tr> <th style="text-align: left;">线圈地址</th> <th style="text-align: left;">描述</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">2000(0x07d0)</td> <td style="text-align: left;">DI_0输入状态</td> <td>固体电推杆前接近开关,读取传感器值0为在位,1为不在位</td> </tr> <tr> <td style="text-align: left;">2001(0x07d1)</td> <td style="text-align: left;">DI_1输入状态</td> <td>固体电推杆后接近开关,读取传感器值0为在位,1为不在位</td> </tr> </tbody> </table> <p>主机发送 01 02 00 00 00 08 79 CC  , 查询0地址开始,8个离散输入状态。 注:本系统只支持0地址开始8个线圈查询。 从机返回 01 02 01 FE 20 FC  ,第4个数据 FE 表示 输入状态。最高位为输入7状态,最低位为输入0状态。0表示高电平,1表示低电平。FE 表示第0输入为高电平,其余为低电平。</p> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">数据长度</th> <th style="text-align: left;">线圈状态</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x02</td> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0xfe</td> <td style="text-align: left;">0x20fc</td> </tr> </tbody> </table> <h5>读(03)写(06)</h5> <p>寄存器 读取寄存器数值 </p> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">保持寄存器地址</th> <th style="text-align: left;">读取数量</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x03</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">保持寄存器地址</th> <th style="text-align: left;">保持寄存器值</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x06</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <p>ID号:每个模块板子有一个独立的编号,范围为1~255,一个字节。 命令:03命令为读取保持寄存器,06为写保持寄存区,也就是03命令可以读取模块的数据,配置文件等,06命令可以写数据,写配置文件,一个字节。 地址:模块保持寄存器地址,两个字节,高字节在前,低字节在后。 读取数量:读取保持寄存器的数量,两个字节,高字节在前,低字节在后。 03读保持寄存器返回 主机发送 01 03 00 00 00 01 84 0A , 查询0地址开始,1个寄存器状态。 注:本系统只支持单个输入寄存器查询。 从机返回 01 03 02 00 01 79 FC</p> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">数据长度</th> <th style="text-align: left;">保持寄存器值</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x06</td> <td style="text-align: left;">0x02</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <p>06写保持寄存器返回 主机发送 01 06 00 00 00 01 09 A1  ,给地址0x0000,写入0x0000数据。 注:本系统只支持单个保持寄存器写入。 从机返回 01 06 00 00 00 01 09 A1    ,系统地址为1。</p> <h4>寄存器</h4> <table> <thead> <tr> <th style="text-align: left;">寄存器地址</th> <th style="text-align: left;">描述</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">3000(0x0bb8)</td> <td style="text-align: left;">系统地址</td> <td style="text-align: left;">1-250</td> </tr> <tr> <td style="text-align: left;">3001(0x0bb9)</td> <td style="text-align: left;">复位</td> <td style="text-align: left;">0xAA55</td> </tr> <tr> <td style="text-align: left;">3002(0x0bba)</td> <td style="text-align: left;">辅料1电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3003(0x0bbb)</td> <td style="text-align: left;">辅料2电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3004(0x0bbc)</td> <td style="text-align: left;">辅料3电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3005(0x0bbd)</td> <td style="text-align: left;">辅料4电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3006(0x0bbe)</td> <td style="text-align: left;">辅料5电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3007(0x0bbf)</td> <td style="text-align: left;">传送带电机运行时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> <tr> <td style="text-align: left;">3008(0x0bc0)</td> <td style="text-align: left;">电推杆可运行最大时间</td> <td style="text-align: left;">默认的最大执行时间为(为掉电保护存储),单位0.1秒</td> </tr> </tbody> </table> <h5>写 (05)线圈</h5> <p>写线圈命令举例解析</p> <table> <thead> <tr> <th style="text-align: left;">ID</th> <th style="text-align: left;">命令</th> <th style="text-align: left;">线圈地址</th> <th style="text-align: left;">写线圈状态</th> <th style="text-align: left;">CRC-16校验</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">0x01</td> <td style="text-align: left;">0x05</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> <td style="text-align: left;">0x0000</td> </tr> </tbody> </table> <p> ID号:每个模块板子有一个独立的编号,范围为1~255,一个字节。 命令:05命令为写线圈,一个字节。 线圈地址:模块线圈地址,两个字节,高字节在前,低字节在后。 读取数量:写取线圈的数量,两个字节,高字节在前,低字节在后。</p> <p>主机发送 01 05 00 01 ff 00 4E 2C  , 写线圈,写地址为1的线圈。 从机返回 01 05 00 01 ff 00 4E 2C    ,系统地址为1。</p> <table> <thead> <tr> <th style="text-align: left;">寄存器地址</th> <th style="text-align: left;">描述</th> <th style="text-align: left;"></th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">4000(0x0fa0)</td> <td style="text-align: left;">电推杆伸出</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4001(0x0fa0)</td> <td style="text-align: left;">电推杆缩回</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4002(0x0fa0)</td> <td style="text-align: left;">辅料电机1转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4003(0x0fa0)</td> <td style="text-align: left;">辅料电机2转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4004(0x0fa0)</td> <td style="text-align: left;">辅料电机3转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4005(0x0fa0)</td> <td style="text-align: left;">辅料电机4转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4006(0x0fa0)</td> <td style="text-align: left;">辅料电机5转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4007(0x0fa0)</td> <td style="text-align: left;">传送带旋转</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4008(0x0fa1)</td> <td style="text-align: left;">DO_0线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4009(0x0fa2)</td> <td style="text-align: left;">DO_1线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4010(0x0fa2)</td> <td style="text-align: left;">DO_2线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4011(0x0fa3)</td> <td style="text-align: left;">DO_3线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4012(0x0fa4)</td> <td style="text-align: left;">DO_4线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4013(0x0fa5)</td> <td style="text-align: left;">DO_5线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4014(0x0fa6)</td> <td style="text-align: left;">DO_6线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> <tr> <td style="text-align: left;">4015(0x0fa7)</td> <td style="text-align: left;">DO_7线圈地址</td> <td style="text-align: left;">写0xff00有效,0x0000关闭</td> </tr> </tbody> </table> <h4>设定辅料时间参数</h4> <p>1.写3002寄存器,值为要设定的时间,单位为0.1s,辅料电机1::生菜。 2.写3003寄存器,值为要设定的时间,单位为0.1s,辅料电机2::香菜。 3.写3004寄存器,值为要设定的时间,单位为0.1s,辅料电机3::葱花。 4.写3005寄存器,值为要设定的时间,单位为0.1s,辅料电机4::薄脆。 5.写3006寄存器,值为要设定的时间,单位为0.1s,辅料电机5::火腿。 6.写3007寄存器,值为要设定的时间,单位为0.1s,传送带时间。</p> <h4>下辅料</h4> <p>1.写4002寄存器,值0xff00,辅料电机1::生菜。 2.写4003寄存器,值0xff00,辅料电机2::香菜。 3.写4004寄存器,值0xff00, 辅料电机3::葱花。 4.写4005寄存器,值0xff00,辅料电机4::薄脆。 5.写 4006寄存器,值0xff00,辅料电机5::火腿。</p> <h4>出辅料</h4> <p>1.固体电推杆伸出 写4000寄存器,值0xff00。 2.固态辅料传送带旋转 写4007寄存器,值0xff00, 3.固体辅料缩回 写4001寄存器,值0xff00。</p>

页面列表

ITEM_HTML