目录

  • SocketClose - 关闭套接字
  • SocketCreate - 创建新套接字
  • SocketBind - 将套接字与我的IP地址和端口绑定
  • SocketConnect - 连接远程计算机
  • SocketListen - 监听输入连接
  • SocketAccept - 接受输入连接
  • SocketReceive - 接收来自远程计算机的数据
  • SocketSend - 向远程计算机发送数据
  • 综合
    • 服务器 Server
    • 客户端 Client

SocketClose - 关闭套接字


概述:当不再使用套接字连接时,使用SocketClose。 在已经关闭套接字之后,不能将其用于除SocketCreate以外的所有套接字调用。

!关闭套接字,且不能再进行使用。VAR socketdev socket1;
SocketClose socket1;!将关闭套接字,并将释放其配置资源。
!可在任意时间关闭任意套接字。关闭后,不能再使用套接字。在调用SocketCreate之后,可将其再次用于新的连接。

SocketCreate - 创建新套接字


概述:SocketCreate用于针对基于通信或非连接通信的连接,创建新的套接字。 带有交付保证的流型协议TCP/IP以及数据电报协议UDP/IP的套接字消息传送均得到支持。可开发服务器和客户端应用。针对数据电报协议UDP/IP,支持采用广播。

!创建使用流型协议TCP/IP的新套接字设备,并分配到变量socket1。VAR socketdev socket1;
SocketCreate socket1;

SocketCreate Socket [\UDP]

参数 说明
Socket 数据类型:socketdev 用于储存系统内部套接字数据的变量
[ \UDP ] 数据类型:switch 指定套接字应当为数据电报型协议UDP/IP

SocketBind - 将套接字与我的IP地址和端口绑定


概述:SocketBind用于将套接字与指定服务器IP地址和端口号绑定。SocketBind仅可用于服务器应用。

!创建服务器套接字,并与地址为192.168.0.1的控制器网络上的端口1025绑定。现在,可在SocketListen指令中使用服务器套接字,以监听位于该端口和地址上的输入连接。VAR socketdev server_socket;
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;!将服务器套接字与指定服务器端口和IP地址绑定。
!如果已在使用指定端口,则会产生错误。
!在启动程序的过程中,使用SocketBind和SocketListen指令,从而使局部地址与套接字相关联,随后,监听指定端口上的输入连接。针对用到的各套接字和端口(TCP/IP),仅建议实施上述操作一次。

SocketBind Socket LocalAddress LocalPort

参数 说明
Socket 数据类型:socketdev 有待绑定的服务器套接字。必须创建尚未绑定的套接字
LocalAddress 数据类型:string 将服务器网络地址与套接字绑定。唯一有效的地址为所有公共WAN地址,或控制器服务端口地址192.168.125.1
LocalPort 数据类型:num 将服务器端口号与套接字绑定。通常,可自由使用端口1025-4999

SocketConnect - 连接远程计算机


概述:SocketConnect用于将套接字与客户端应用中的远程计算机相连

!尝试与ip地址192.168.0.1和端口1025处的远程计算机相连VAR socketdev socket1;
SocketConnect socket1, "192.168.0.1", 1025;!套接字试图连接指定地址和端口上的远程计算机。程序执行将等待,直至连接得以建立、失效或出现超时。

SocketConnect Socket Address Port [\Time]

参数 说明
Socket 数据类型:socketdev 有待连接的服务器套接字。必须创建尚未连接的套接字
Address 数据类型:string 远程计算机的地址。必须将远程计算机指定为一个IP地址。不可能使用远程计算机的名称
Port 数据类型:num 位于远程计算机上的端口。通常,可自由使用端口1025-4999。可能已经采用了低于1025的端口
[ \Time] 数据类型:num 程序执行等待接受或否定连接的最长时间量。如果在满足条件之前耗尽时间,则将调用错误处理器,如果存在这样的情况,则采用错误代码ERR_SOCK_TIMEOUT。如果不存在错误处理器,则将停止执行。 如果未使用参数\Time,则等待时间为60秒。为了永久等待,则使用预定义常量WAIT_MAX

SocketListen - 监听输入连接


概述:SocketListen用于开始监听输入连接,即开始充当服务器。SocketListen仅可用于服务器应用。

!创建服务器套接字,并与地址为192.168.0.1的控制器网络上的端口1025绑定。在执行SocketListen后,服务器套接字开始监听位于该端口和地址上的输入连接。VAR socketdev fuwuqi_socket;
SocketClose fuwuqi_socket;
SocketCreate fuwuqi_socket;
SocketBind fuwuqi_socket,"192.168.125.1",2555;
SocketListen fuwuqi_socket;!服务器套接字开始监听输入连接。当指令就绪时,套接字便准备好接受输入连接。
!在启动程序的过程中,使用SocketBind和SocketListen指令,从而使局部地址与套接字相关联,随后,监听指定端口上的输入连接。针对用到的各套接字和端口,仅建议实施上述操作一次。

SocketAccept - 接受输入连接


概述:SocketAccept用于接受输入连接请求。SocketAccept仅可用于服务器应用。

!创建服务器套接字,并绑定至地址为192.168.0.1的控制器网络上的端口1025。在执行SocketListen之后,服务器套接字开始监听位于该端口和地址上输入连接。SocketAccept等待所有输入连接,接受连接请求,并返回已建立连接的客户端套接字。VAR socketdev server_socket;
VAR socketdev client_socket;
SocketClose server_socket;
SocketClose client_socket;
SocketCreate server_socket;
SocketBind server_socket,"192.168.0.1", 1025;
SocketListen server_socket;
SocketAccept server_socket, client_socket;
!服务器套接字将等待所有输入连接请求。当接受输入连接请求时,本指令就绪,且返回的客户端套接字默认连接,并可用于SocketSend和SocketReceive指令。

SocketAccept Socket ClientSocket [\ClientAddress] [ \Time ]

参数 说明
Socket 数据类型:socketdev 正在等待输入连接的服务器套接字。套接字必须已经创建、绑定并准备进行监听
ClientSocket 数据类型:socketdev 将按照接受的输入连接请求,对返回的新客户端套接字进行更新
[\ClientAddress] 数据类型:string 将通过已接受输入连接请求的IP地址来进行更新的变量
[\Time] 数据类型:num 程序执行等待输入连接的最长时间量。如果在任意输入连接之前耗尽时间,则将调用错误处理器,如果存在这样的情况,则采用错误代码ERR_SOCK_TIMEOUT。如果不存在错误处理器,则将停止执行。 如果未使用参数\Time,则等待时间为60秒。为了永久等待,则使用预定义常量WAIT_MAX

SocketReceive - 接收来自远程计算机的数据


概述:SocketReceive用于从远程计算机接收数据。SocketReceive可用于客户端和服务器应用。

!从远程计算机接收数据,并将其储存在字符串变量str中。VAR string str;
VAR socketdev client_socket;
VAR socketdev fuwuqi_socket;
SocketClose client_socket;
SocketClose fuwuqi_socket;
SocketCreate fuwuqi_socket;
SocketBind fuwuqi_socket,"192.168.125.1",2555;
SocketListen fuwuqi_socket;
WaitTime 1;
SocketAccept fuwuqi_socket,client_socket;
SocketReceive client_socket\Str:=str\Time:=WAIT_MAX;
TPWrite "Server wrote ="+str;!将等待执行SocketReceive,直至数据在出现超时错误时可用或失效。
!通过本指令中使用的数据类型来指定所读取的字节数量。如果使用string数据类型来接收数据,则如果可读取80个字节,则会接收到80个字节。如果使用可选参数ReadNoOfBytes,用户可指定各SocketReceive所应接收的字节数。
!通过电缆转移的数据通常为字节,一条消息中最多包含1024个字节。默认不向消息添加任何标题。为实际应用而保留任意标题的使用。

SocketReceive Socket [ \Str ] | [ \RawData ] | [ \Data ] [\ReadNoOfBytes] [\NoRecBytes] [\Time]

参数 说明
Socket 数据类型:socketdev 在套接字接收数据的客户端应用中,必须已经创建和连接套接字。 在套接字接收数据的服务器应用中,必须已经接受套接字
[ \Str ] 数据类型:string 应当储存接收string数据的变量。可处理最多80个字符。 [ \RawData ] 数据类型:rawbytes 应当储存接收原始数据字节数据的变量。可处理最多1024个rawbyte
[\Data] 数据类型:array of byte 应当储存接收字节数据的变量。可处理最多1024个byte。 仅可在同一时间使用可选参数\Str、 \RawData和\Data之一
[\ReadNoOfBytes] 数据类型:num 待读取的字节数。待读取字节的最小值为1,且最大数量为所用数据类型的规模,即如果使用数据类型string的变量,则为80个字节。 如果与始终发送固定字节数的客户端进行通信,则该可选参数可用于指定针对各SocketReceive指令所应读取的相同字节数量。 如果发送方发送原始数据,则接收方需要指定针对已发送的各rawbytes所应接收的4个字节
[ \NoRecBytes ] Bytes 数据类型:num 关于储存指定socketdev所需字节数的变量
[ \Time ] 数据类型:num 程序执行等待接收数据的最长时间量。如果在转移数据之前耗尽时间,则将调用错误处理器,如果存在这样的情况,则采用错误代码ERR_SOCK_TIMEOUT。如果不存在错误处理器,则将停止执行。 如果未使用参数\Time,则等待时间为60秒。为了永久等待,则使用预定义常量WAIT_MAX

SocketSend - 向远程计算机发送数据


概述:SocketSend用于向远程计算机发送数据。SocketSend可用于客户端和服务器应用。

!将消息"Hello world"发送给远程计算机VAR socketdev fuwuqi_socket;
VAR socketdev client_socket;
VAR string str;
SocketClose client_socket;
SocketClose fuwuqi_socket;
SocketCreate fuwuqi_socket;
SocketBind fuwuqi_socket,"192.168.125.1",8005;
SocketListen fuwuqi_socket;
WaitTime 1;
SocketAccept fuwuqi_socket,client_socket;
SocketSend client_socket\Str:="Hello World";!将指定数据发送到远程计算机。如果连接损坏,则会产生错误
!通过电缆转移的数据通常为字节,一条消息中最多包含1024个字节。默认不向消息添加任何标题。为实际应用而保留任意标题的使用

SocketSend Socket [ \Str ] | [ \RawData ] | [ \Data] [ \NoOfBytes ]

参数 说明
Socket 数据类型:socketdev 在客户端应用中,必须已经创建和连接用于发送的套接字。 在服务器应用中,必须已经接受用于发送的套接字
[ \Str ] 数据类型:string 将string发送到远程计算机
[\RawData] 数据类型:rawbytes 将rawbytes数据发送到远程计算机
[\Data] 数据类型:array of byte 将byte数组中的数据发送到远程计算机。 同一时间只能使用可选参数\Str、\RawData或\Data中的一个
[\NoOfBytes] 数据类型:num 如果指定该参数,则仅将该字节数发送到远程计算机。如果\NoOfBytes大于待发送数据结构中的实际字节数,则SocketSend调用将失败。 如果未指定该参数,则将整个数据结构(rawbytes的有效部分)发送到远程计算机

综合

服务器 Server

MODULE MainModule!服务器套接字VAR socketdev fuwuqi_socket;!客服端套接字VAR socketdev kehuduan_socket;VAR bool keep:=TRUE;VAR string str;PROC Main()!关闭套接字SocketClose kehuduan_socket;SocketClose fuwuqi_socket;!创建服务器套接字SocketCreate fuwuqi_socket;!将套接字与我的IP地址和端口绑定SocketBind fuwuqi_socket,"192.168.125.1",2555;!监听输入连接SocketListen fuwuqi_socket;WaitTime 1;!接受输入连接SocketAccept fuwuqi_socket,client_socket;WHILE keep DO!接收客户端发送过来的数据SocketReceive kehuduan_socket\Str:=str\Time:=WAIT_MAX;TPWrite "server ="+str;!发送数据给客户端SocketSend kehuduan_socket\Str:="Hello World";ENDWHILE!关闭资源SocketClose fuwuqi_socket;SocketClose kehuduan_socket;ENDPROC
ENDMODULE

客户端 Client

MODULE MainModuleVAR socketdev kehuduan_socket;VAR string str;PROC Main()!关闭套接字SocketClose kehuduan_socket;!创建客户端的套接字SocketCreate kehuduan_socket;!连接服务器SocketConnect kehuduan_socket,"192.168.125.1",2555;WaitTime 1;!发送数据给服务器SocketSend kehuduan_socket\Str:="Hollo server!";!接收服务器发送的数据SocketReceive kehuduan_socket\Str:=str\Time:=WAIT_MAX;TPWrite "client ="+str;!关闭资源SocketClose kehuduan_socket;ENDPROC
ENDMODULE

希望对你们有所帮助,如有不足之处,欢迎大家留言探讨,本文已经首发在个人微信公众号:龙猫YOU ,欢迎关注!

ABB机器人Sockets通讯相关推荐

  1. ABB机器人profinet通讯传输正负整数及浮点数

    前言 大家好,之前在其它公众号上看到有篇 付费文章 介绍 ABB机器人profinet通讯传输正负整数及浮点数 ,抽空测试了以下,发现它提供的代码还是有问题的. 今天我把完整的测试后的代码发布出来,供 ...

  2. ABB机器人socket通讯

    文章目录 前言 一.效果展示 二.知识储备 1.准备工作 2.套接字通信的示意图 3.客户端指令 4.服务器指令 三.源码说明 前言 Socket Messaging的作用是允许RAPID程序员通过T ...

  3. 实现C# 与ABB机器人建立通讯,并对机器人进行实时的控制

    C# 与ABB机器人建立通讯 安装软件 VS2013+RobotStudio5.61+PC SDK5.61 注: 1.RobotStudio 和 PC SDK 可以去官网下载 .http://deve ...

  4. C# ABB机器人PC_SDK通讯

    本项目使用winform和C#对ABB进行通讯,打开vs2022,使用windows 窗口应用.需要一定的winforms基础. 然后打开Form1.cs窗口,找到工具箱,工具箱里面就是控件.将控件托 ...

  5. ABB机器人socket通讯和数据提取及转换

    ABB机器人创建socket,需要有616-1 PC-INTERFACE选项 同时需要新建socketdev类型的变量 套接字可分为客户端和服务端,这里一般把ABB作为客户端 PROC TCP_Soc ...

  6. 台达plc自由口通讯_台达PLC和ABB机器人Devicenet通讯

    之前有经常遇见台达PLC和第三方机器人进行Devicenet通讯,故作以下整理,方便再次使用. 以台达模块DVPDNET-SL与ABB IRC5通讯为例,方法如下: 1.硬件连线 将PLC模块端和Ro ...

  7. ABB机器人socket通讯实时位置上传,中断触发

    一.中断.多线程.多任务 中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作.在运行一个程序的过程中,断续地以"插入"方式执行一些完成特定处理功能的程序段. 硬件多线程是 ...

  8. abb和plcsocket通讯_详解ABB机器人SOCKET通讯

    一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时 ...

  9. abb外部轴零位校准_新品发布 | ABB机器人节拍最快的冲压自动化以及ABB紧凑型车身内喷解决方案...

    ABB机器人节拍最快的冲压自动化 ABB 推出IRB 760PT码垛搬运机器人,全新冲压上下料型号,为汽车冲压自动化带来快速灵活的解决方案.IRB 760PT机器人是一款柔性的冲压上下料解决方案,专为 ...

最新文章

  1. mac如何导入python第三方库_mac下python安装第三方库
  2. 使Struts2与Servlet并存解决办法 Filter转发Servlet
  3. c:forEach 取 map的值
  4. java新建对象校验_验证某个对象是否是一个mock对象或者一个spy对象
  5. HTML和CSS入门
  6. 机器学习常用损失函数
  7. 【光学】基于matlab夫琅禾费圆孔衍射【含Matlab源码 062期】
  8. C语言正交表测试用例,测试用例设计之正交表法和配对测试法
  9. 模式识别与智能系统类毕业论文文献都有哪些?
  10. airpak模拟案例_AirPak建筑流体模拟软件介绍
  11. python语言程序设计基础课后习题答案
  12. 数据结构算法 - ConcurrentHashMap 源码解析
  13. wx.createSelectorQuery() 获取节点信息 获取不到解决方法
  14. 近30所高校,获教育部点名表扬!
  15. 银行软件测试工作总结
  16. 去哪儿网2015年春季校园招聘技术笔试题
  17. 【概率论】5-2:伯努利和二项分布(The Bernoulli and Binomial Distributions)
  18. 图文详解如何将书签bookmarks导回到chrome?
  19. MySQL 中的系统库之sys 系统库
  20. UE4 动态修改材质 控制颜色和贴图

热门文章

  1. HeadFirst:设计模式-观察者模式
  2. 在技术的海洋迷失了自己
  3. Element UI表格行拖拽功能
  4. html写自动关机的代码,用bat实现的自动关机的代码
  5. markdown统一设置图片格式_Markdown中如何设置图片居中
  6. Python实现BBS自动登录并发帖
  7. Document.createEvent() 创建自定义事件
  8. 小楼昨夜又春风,你知ysoserial-Gadget-URLDNS多少?
  9. AI在实体零售行业的应用场景
  10. UGUI中Text实现一个简单的打字机的效果