Fanuc机器人 Karel 编程学习(五)---简单的Socket通信

news2024/9/20 2:51:39

Fanuc Karel编写Socket程序和上位机进行通信。

一:环境配置(ROBOGUIDE)

1.1机器人系统变量设置

MENU-------> SYSTEM------> Variables------->$KERAL_ENB     设置为1

1.2 IP地址设定

MENU---->SETUP---->Host Comm

选择 F3【DETAIL】进入IP设置界面

备注:按键F3【PORT】可以选择相应的物理网口Port#1 或者Port#2,具体需要看你网线插在哪个物理网口上 

设置IP地址和上位机在同一网段,不同IP地址。如果是ROBOGUIDE软件,此地址需要和电脑网口的IP地址一样。

当前我设置的IP地址是192.168.1.111,我上位机软件设置的是192.168.1.100

1.3 Tcp Server 设定

MENU---->SETUP---->Host Comm

 

 选择 F4【SHOW】--->3  进入SERVER设置界面:

可以看到S1,S2 是FTP服务,S3是我之前设置好的TCP 服务器。这里以S4为例。

选择S4 ,按F3【DETAIL】或者Enter 进入:

在 Protocol 处,按 F4 【CHOICE】,并选择 SM :

 在 Startup  State 处,按 F4 【CHOICE】并选择DEFINE :

在 Server IP/Hostname 处,按 Enter ,输入上位机的 IP 地址:

在 Startup  State 处,按 F4 【CHOICE】并选择Start :

按 F2 【ACTION 】,并选择start ,界面会变成: 

 Server Prot 设置,

方法一:

在Karel 程序中设置:

例如:设置S3的Server Port 端口为59002

SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)

方法二:

MENU-------> SYSTEM------> Variables------->$HOSTS_CFG   Enter键进入如下界面:

注意:$HOSTC_CFG 配置的是客户端,$HOSTS_CFG 是服务器

我们选择S4 对应的变量【4】 按Enter 键进入如下界面:

找到并更改ServerPort,这里我们把ServerPort 改成7894  

然后重启断开Robot电源重新启动Robot生效。

1.4 Tcp Client 设定

按照上面设定IP步骤进入如下界面:

 按 F4 【SHOW】并选择 Clients (机器人将作为 Client ,上位机作为 Server):

进入如下界面:

 选择 Tag 标签号,这里以 C1 为例,按 Enter 或 F3 【DETAIL 】进入如下界面

 在protocol 处,按F4【CHOICE】,并选择  SM

在Startup State处,按F4【CHOICE】并选择DEFINE:

 在Sever IP/Hostname处键入 TCP Server  IP地址:

按F2【ACTION】,并选择 DEFINE:

 Port号的设置

MENU-------> SYSTEM------> Variables------->$HOSTC_CFG Enter键进入如下界面:

 选择C1 对应的【1】 ,按Enter或者DETAIL 进入:

 找到$SERVER_PORT,并设置值,注意这个端口号由上位机服务器决定,我们设定的值需要和服务器端一致。

 完成后重启机器人控制器生效。

二,简单的服务器程序实现Socket 通信。

效果如下(读入10字节,返回10字节):

代码如下:

PROGRAM tcpserv2

%STACKSIZE = 4000
%NOLOCKGROUP
%NOPAUSE = ERROR +COMMAND +TPENABLE
%ENVIRONMENT uif
%ENVIRONMENT sysdef
%ENVIRONMENT memo
%ENVIRONMENT kclop
%ENVIRONMENT bynam
%ENVIRONMENT fdev
%ENVIRONMENT flbt
%INCLUDE klevccdf
%INCLUDE klevkeys
%INCLUDE klevkmsk

VAR

file_var : FILE
tmp_int : INTEGER
tmp_int1 : INTEGER
tmp_str : STRING[128]
tmp_str1 : STRING[128]
status : INTEGER
entry : INTEGER

BEGIN
	SET_FILE_ATR(file_var, ATR_IA)
	-- set the server port before doing a connect
	SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)
	WRITE('Connecting..',CR)
	MSG_CONNECT('S3:',status)
	--WRITE(' CONNECT Status = ',status,CR)
	IF status = 0 THEN
	-- Open S3:
		WRITE ('Opening',CR)
		FOR tmp_int1 = 1 TO 20 DO
			OPEN FILE  file_var( 'rw','S3:')
			status = IO_STATUS(file_var)
			WRITE (status,CR)
			IF status = 0 THEN
				-- write an integer
				FOR tmp_int = 1 TO 1000 DO
					WRITE('Reading',CR)
					-- Read 10 bytes
					BYTES_AHEAD(file_var, entry, status)
					WRITE(entry, status, CR)
					
					READ file_var (tmp_str::10)
					status = IO_STATUS(file_var)
					WRITE (status, CR)
					-- WRITE 10 bytes
					WRITE (tmp_str::10, CR)
					WRITE file_var (tmp_str::10)
					status = IO_STATUS(file_var)
					WRITE (status, CR)
				ENDFOR
				CLOSE FILE file_var
			ENDIF
		ENDFOR
		WRITE('Disconnecting..',CR)
		MSG_DISCO('S3:',status)
		WRITE('Done.',CR)
	else
		
		WRITE('connecting error',CR)
		MSG_DISCO('S3:',status)
		
	ENDIF
	

END tcpserv2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1612138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图论 单源最短路】100276. 最短路径中的边

本文时间知识点 单源最短路 图论知识汇总 LeetCode100276. 最短路径中的边 给你一个 n 个节点的无向带权图,节点编号为 0 到 n - 1 。图中总共有 m 条边,用二维数组 edges 表示,其中 edges[i] [ai, bi, wi] 表示节点 ai 和 bi 之间有一条…

Topaz Photo AI 3.0.0 (macOS Universal) - AI 图片修复工具

Topaz Photo AI 3.0.0 (macOS Universal) - AI 图片修复工具 Maximize Image Quality with AI 请访问原文链接:Topaz Photo AI 3.0.0 (macOS Universal) - AI 图片修复工具,查看最新版。原创作品,转载请保留出处。 作者主页:sy…

FK中的一些方法

1. 隔离法与整体法 目标:对一个拉新邀请任务,识别出其中的作弊用户。 欺诈类的数据,黑样本不足,需要自己去找,可按IP、昵称、手机号相似性等。虽然有 会员等级、注册时长、注册地址、成交订单等特征,但分类…

STM32 HAL库F103系列之ADC实验(一)

ADC工作原理: 1、输入通道: 2、转换序列: A/D转换被组织为两组:规则组(常规转换组)和注入组(注入转换组) 规则组最多可以有16个转换,注入组最多有4个转换 规则组和注入…

视频素材库哪里最好?8个视频素材免费商用

在视频创作的世界里,寻找那些能够完美匹配你的想法并加以实现的视频素材是一项既令人兴奋又充满挑战的任务。无论你的目标是提升视频质量、增强视觉效果,还是简单地想要让你的作品更加出色,这里有一系列全球精选的视频素材网站,它…

014Node.js时间格式包silly-datetime安装与使用

下载: https://www.npmjs.com/网站上下载silly-datetime 安装 npm i silly-datetime --save var sd require(silly-datetime);console.log(new Date()); //2024-04-18T04:40:38.505Zvar dsd.format(new Date(), YYYY-MM-DD HH:mm);console.log(d); //2024…

【C++类和对象】const成员函数及流插入提取

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

2024第三届中国力触觉技术及应用会议,将于5月24-26日在天津举办,搜维尔科技与您共探触觉传感器与力触觉感知新技术

大会介绍 2024第三届中国力触觉技术及应用会议”将于2024年5月24-26日在中国天津举办。 本届会议以“感知赋能未来,触觉助力世界”为主题,聚焦力触觉传感器与力触觉感知技术,持续关注行业领域热点,探讨技术前沿,融合多…

Jira搭建过程

看到很多小伙伴对jira有兴趣,我们今天就来分享一下jira的搭建吧 首先要明白jira是什么? 看来搭建jira也是我们测试人员需要具备的技能之一了.下面是详细的大家步骤: 1.系统环境准备 Centos 7.5 Mysql 5.6 Java1.8 2.软件安装包 atlassian-jira-software-7.13.0-x64.bin …

数据结构——7.3 树形查找

7.3 树形查找 概念 二叉排序树(BST) 二叉排序树(Binary Sort Tree,BST),又称为二叉查找(搜索)树(Binary Search Tree),是一种特殊的二叉树&am…

OpenHarmony 网络与连接—RPC连接

介绍 本示例使用ohos.rpc 相关接口,实现了一个前台选择商品和数目,后台计算总价的功能,使用rpc进行前台和后台的通信。 效果预览 使用说明: 点击商品种类的空白方框,弹出商品选择列表,选择点击对应的商品…

MATLAB实现遗传算法优化BP神经网络预测数值(GABP)

遗传算法(Genetic Algorithm, GA)和反向传播(Back Propagation, BP)神经网络是两种强大的算法,分别用于优化和机器学习。将遗传算法与BP神经网络结合,可以利用遗传算法的全局搜索能力来优化BP神经网络的初始…

stm32中断发送接收数据

配置hal库 1配置时钟 2配置uart 3打开中断 程序结构 uart中断函数 中断接收和发送函数 HAL_UART_Receive_IT():启动中断驱动的接收过程,当接收到指定数量的字节后会产生中断,并调用HAL_UART_RxCpltCallback()回调函数。 HAL_StatusTypeD…

【MIT6.S081】Lab4: traps(详细解答版)

实验内容网址:https://xv6.dgs.zone/labs/requirements/lab4.html 本实验的代码分支:https://gitee.com/dragonlalala/xv6-labs-2020/tree/traps2/ Backtrace 关键点:trapframe、栈 思路: 这道题的关键是栈结构,先阅读xv6中关于栈…

SpringCloud技术—Docker详解、案例展示

简介:Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。 总体来说,…

代码随想录刷题|一刷总结

文章目录 一刷总结一、 成果汇报1、leetcode提交记录2、博客更新记录 二、 经验总结2.1.刷过的所有题型2.1.1、数组2.1.2、链表2.1.3、哈希表2.1.4、字符串2.1.5、栈与队列2.1.6、二叉树2.1.7、回溯2.1.8、贪心2.1.9、动态规划2.1.10、单调栈 2.2、做得好的2.3、做得不好的2.4、…

行业模板|DataEase批发零售大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

AtCoder Beginner Contest 350 ----- F - Transpose ---- 题解

F - Transpose: 题目描述: 思路解析: 如果有一对括号,那么删掉括号对,并且将括号对里的字符串翻转,在翻转过程中,使字符串的字母改变大小写。那我们可以通过预处理找到每个括号对。 例如 A(x(AXB)x)B …

计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制) 介质访问控制静态划分信道动态划分信道ALOHA协议纯ALOHA(Pure ALOHA)原理特点 分槽ALOHA(Slotted ALOHA)原理特点 CSMA协议工作流程特点 CSMA-CD 协议工作原理主要…

快速开发部署平台Replit

Replit 是可以快速搭建开发、部署环境的平台。能够快速将原型进行部署,代码编辑器支持协同开发,他的在线编辑器做的不错,相当于云上提供了一个 vscode,代码实时更新。Replit 底层是基于容器技术的,可以安全的隔离多个用…