工艺包【1】:协作机器人制作咖啡

工控机主程序通过modbus连接触摸屏;通过TCP/IP协议连接咖啡机和协作机器人;


首先打开机器人服务器程序,复位,运行至等待step;

然后打开机器人主程序,复位,运行至等待step;

最后打开工控机的主程序运行即可。

中间出现故障,按提示解决。

咖啡机
触摸屏

拉花机

示教器

协作机器人

#工控机运行的主程序

import socket
import time

import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_tcp

re_state=('{"cmd":"state","action":"get"}').encode()
latte=('{"cmd":"products","recipe_adjust":"false","make_product_session_id":1001,"product_id":[810],"count":[1],"product_recipe":[]}').encode()
mocha=('{"cmd":"products","recipe_adjust":"false","make_product_session_id":1001,"product_id":[806],"count":[1],"product_recipe":[]}').encode()
cappuccino=('{"cmd":"products","recipe_adjust":"false","make_product_session_id":1001,"product_id":[811],"count":[1],"product_recipe":[]}').encode()
chocolateMilk=('{"cmd":"products","recipe_adjust":"false","make_product_session_id":1001,"product_id":[980],"count":[1],"product_recipe":[]}').encode()
makeLatteArt=('{"cmd":"evebot","evebot_id":"202566","evebot_state":"start"}').encode()
  
logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")

server = modbus_tcp.TcpServer()
logger.info("running...")

server.start()

slave_1 = server.add_slave(1)
slave_1.add_block('0', cst.HOLDING_REGISTERS, 0, 10)

slave = server.get_slave(1)
cafem = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
robot = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

while robot.connect(('192.168.100.125', 3240)):    
    time.sleep(1) 
    print('robot is connecting ...')
print("robot is connected")
while cafem.connect(('192.168.100.33',9999)):    
    time.sleep(1) 
    print("cafem is connecting ...")
print("cafem is connected")

while True:
    slave.set_values('0',1,(0,0,0,0))
    while True:
        values=slave.get_values('0',1,4)
        time.sleep(1)
        print("cafem is waitting ...")
        if values[0]+values[1]+values[2]+values[3]>0:
            break 
    robot.send(('fangbei').encode())
    print('robot_fangbeiwei:',robot.recv(1024)) 
    cafem.send(re_state) 
    print('cafem',cafem.recv(1024))              
    if values[0]==1:
       cafem.send(latte)
    elif values[1]==1:
        cafem.send(mocha)
    elif values[2]==1:
       cafem.send(cappuccino)
    elif values[3]==1:
        cafem.send(chocolateMilk)    
    else:
        print("command is empty")
        break
    print("wait cafem ....")
    print('cafem',cafem.recv(1024))

    robot.send(('done_cafe').encode())
    print('robot_lahuawei:',robot.recv(1024)) 

    cafem.send(makeLatteArt)
    print("wait lahua ....")
    print('cafem',cafem.recv(1024))
    robot.send(('done_lahua').encode())
robot.close()
cafem.close()
server.stop()
   #协作机器人运动运行主程序 

    step = 0
.LDef #p2 = Joint(4.285,7.539,-6.622,-177.925,2.291,42.798)
.LDef #p1 = Joint(4.287,7.539,-6.622,-177.925,2.291,42.798)
        WHILE TRUE DO
                Wait step == 1
                MoveJ  #p1
                MoveJ  #p2
                step = 2
                Wait step == 3
                MoveJ  #p1
                MoveJ  #p2
                step = 4
                Wait step == 5
                MoveJ  #p1
                MoveJ  #p2
        END

      #协作机器人与工控机通讯TCP/IP服务器程序 

        step = 0
        taike = 0
        server = 0
        count = 0
        vis_ret = 0
        TCPSStop server
        TCPSStart server,3240
        TCPSAccept server,taike
        $msgread = ""
        WHILE TRUE DO
        10      TCPSRead taike,$msgread,vis_ret
                IF vis_ret == 0 THEN
                        TPWrite 2,$msgread,0
                        WaitTime 1
                        GOTO 100
                END
                IF $msgread == "fangbei" THEN
                        step = 1
                ELSE
                        WaitTime 1
                        GOTO 10
                END
                Wait step == 2
                TCPSWrite taike,"ok_fb",vis_ret
        20      TCPSRead taike,$msgread,vis_ret
                IF $msgread == "done_cafe" THEN
                        step = 3
                ELSE
                        WaitTime 1
                        GOTO 20
                END
                Wait step == 4
                TCPSWrite taike,"ok_lh",vis_ret
        30      TCPSRead taike,$msgread,vis_ret
                IF $msgread == "done_lahua" THEN
                        step = 5
                ELSE
                        WaitTime 1
                        GOTO 30
                END
        END
100     TCPSStop server

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leecheni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值