西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

上一篇文章我们介绍了如何获取LCom通信库、如何将其添加到项目中及LCom库文件的介绍,其中详细介绍了函数块LCom_Communication的参数。今天这篇文章,我们主要介绍LCom的使用方法,包括怎样建立通信连接及怎样断开连接,这其中我们会介绍数据类型:typeLCom_Config。关于数据的发送和接收将在下一篇文章介绍。

上一篇文章我们介绍了如何获取LCom通信库、如何将其添加到项目中及LCom库文件的介绍,其中详细介绍了函数块LCom_Communication的参数。今天这篇文章,我们主要介绍LCom的使用方法,包括怎样建立通信连接及怎样断开连接,这其中我们会介绍数据类型:typeLCom_Config。关于数据的发送和接收将在下一篇文章介绍。

本文包括两个主题:

  • 建立通信连接;
  • 断开通信连接;

西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

在介绍之前,我们先记住LCom_Communication的指令初始状态,如下图所示:

西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

1、建立通信连接

要想与通信伙伴建立连接,需要配置参数“configuration”,它的数据类型是LCom库的自定义类型:typeLCom_Config。为此,我们新创建一个全局数据块:DBLCom,在其中添加一个变量,名称为“LComConfiguration”,其数据类型设置为“typeLCom_Config”。如下图所示:

西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

可以看到,typeLCom_Config由三部分组成:connection、sender和timeSync,我们来分别介绍下:

1.1、typeLCom_Config的connection

connection的各元素的含义如下面的表格所示:

名称

数据类型

说明

interfaceID

HW_ANY

通信接口的硬件标识符

connectionID

CONN_ANY

通信连接的标识

comService

USInt

通信协议配置,详见注解①

isClient

BOOL

是否作为客户端,详见注解②

localPort

UInt

本地端口号

partnerPort

UInt

远程(通信伙伴)端口号

partnerIP

IP_V4

远程(通信伙伴)IP地址

acceptUnknownPartner

BOOL

是否接受未知对象的连接请求,详见注解③

lifeSignCycleTime

Time

心跳信号周期,详见注解④

注解①:上一篇文章我们介绍过,LCom通信库可用标准的开放式TCP通信协议,同时它又自定义了一个称为“LCom”的协议。我们在使用函数块时,通过参数comService来确定采用哪种通信协议。comService有两种取值:1=LCOM_TCP_CONNECTION,即使用开放式TCP通信协议;2=LCOM_LCOM_CONNECTION,即使用LCom协议;默认设置为后者。

注解②:用来设置通信的角色。我们知道,TCP通信协议有两种角色:服务器(Server)和客户端(Client)。服务器总是被动等待连接,而客户端则主动进行连接。如果作为服务器,则只需要设置本地IP和端口号,上表中的参数partnerPort(通信伙伴端口号)和partnerIP(通信伙伴IP)可以不设置的;如果作为客户端,则需要主动连接服务器。因此,必须设置通信伙伴的端口号和IP地址(当然,本地的也要设置);

注解③:当IsClient设置为FALSE,即作为服务器的角色时,用来设置是否允许任何通信同伙的连接。默认为TRUE,即任何通信伙伴的连接请求都接受。如果设置为FALSE,则同时还需要设置“partnerIP”参数,这种情况下服务器仅接受该IP地址的通信连接请求;

注解④:仅在LCom协议下使用,用来设置心跳信号的周期。在LCom协议下,如果通信伙伴之间没有启动数据传输,则以该周期发送心跳信号,用于判断通信是否正常;

1.2、typeLCom_Config的sender

sender包括cycleTime和ackTimeout,具体含义见下面的表格:

名称

数据类型

说明

cycleTime

Time

用来设置发送数据的周期,详见注解⑤

ackTimeout

Time

用来设置超时时间,详见注解⑥

注解⑤:当启动数据发送后,通过该参数设置周期性发送数据的时间间隔。取值范围:T#0ms...T#24d20h31m23s647ms,默认T#1s;

注解⑥:该参数仅在LCom协议下使用,用来设置确认超时的时间。当在该时间内没有收到通信伙伴的确认信号,则关闭当前连接,并尝试重新建立连接;

关于数据发送我们将在下一篇文章详细介绍;

1.3、typeLCom_Config的timeSync

timeSync用来与通信伙伴进行时间同步,仅在LCom协议下使用。各元素的含义如下表所示:

名称

数据类型

说明

usePartnerTimestamps

Bool

是否使用接收到的时间戳同步本地时间,默认FALSE

sendMode

USInt

发送模式,详见注解⑦

cycleTime

Time

周期时间,详见注解⑧

sendAtTimeOfDay

Time_Of_Day

发送时钟,详见注解⑨

注解⑦:发送模式包括三种:

  • 0=LCOM_NO_TIME_SYNC,即不发送,这是默认设置;
  • 1=LCOM_CYCLE_TIME_SYNC,以周期性方式发送同步时间戳,同步周期在参数“cycleTime”中设置;
  • 2=LCOM_TIME_OF_DAY_TIME_SYNC,以时钟方式发送同步时间戳,时钟设置在参数“sendAtTimeOfDay”;

注解⑧:当发送模式设置为“1”(LCOM_CYCLE_TIME_SYNC)时,用来设置循环发送的周期,取值范围:T#1ms .. T#24d20h31m23s647ms,默认T#1s;

注解⑨:当发送模式设置为“2”(LCOM_TIME_OF_DAY_TIME_SYNC)时,用来设置发送的时钟,默认为:TOD#05:00:00.000;

到这里,我们详细介绍了configuration的结构。当参数已经正确配置好后,给“enable”参数一个上升沿,将会尝试与通信伙伴建立连接。此时“busy”输出位TRUE,表示正在建立连接;当成功建立连接后,“connected”变为TRUE;“status”的值也在不同的过程发生变化,如下图所示:

西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

如果使用LCom协议,不同版本(V1和V2)之间的第一次通信协商会发生错误,之后会从新建立连接,直至“connected”变为TRUE;

2、断开通信连接

“enable”参数的下降沿会将通信连接断开,“connected”变为“FALSE”,“busy”和“status”也会发生变化,如下图所示:

西门子博途S7-1200/1500通信库LCom的使用(1)——建立/断开连接

好了,关于LCom通信库使用方法——建立/断开通信连接就先介绍到这里。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133445.html

(0)

相关推荐

  • 「世界保健日」中老年人保健看这里

    10月13日是“世界保健日”,为纪念《世界卫生组织组织法》批准日。第一届世界卫生大会决定,每年10月13日为“世界保健日”。同时也是在提醒人们关注生活,关爱健康,让我们大家都有一个健康的体魄,充实七彩生活,更好地去享受美丽的人生。

    生活 2021年10月13日
  • 冰箱外闻到有臭味,冰箱里有味

    视频加载中...

    科技 2021年12月9日
  • 全屏折叠手机,折叠屏手机会成为主流吗

    不可否认,现在智能手机越来越「无趣」,外观设计愈发趋同,功能特性也八九不离十。很多人拿到手机,并非打量外观,而是第一时间装好 App,发出带尾巴的状态分享出去。

    科技 2021年12月11日
  • 大杏仁一天吃多少个合适,杏仁每天食用量多少合适

    巴旦木(巴旦姆、巴达木)源于古代波斯语Badam的读音,果实为巴旦杏,学名为扁桃(Amygdalus communis L.),是蔷薇科(Rosaceae)李亚科(Prunoideae)桃属(Amygdalus L.)乔木,是世界上著名的木本油料树和干果树种。巴旦杏属植物为西亚至少1300年以前由野生转化为栽培树种的品系。巴旦木引入新疆的时间没有详细记载,它主要分布在我国南疆地区的喀什和田。内地更直接称它为大杏仁或者扁桃仁,是国内最受欢迎的坚果之一。很多人喜欢吃巴旦木,知道巴旦木中含有很多对人体有益的成分,但具体对人体有哪些影响并不清楚。

    生活 2021年10月30日
  • 「七彩童谣」“画卷绘祖国,童心迎国庆”百米画卷亲子活动

    金秋送爽,翰墨飘香!七彩童谣全体家长和孩子欢聚在一起,喜迎中国七十二周年,即祖国妈妈72岁生日。为了使幼儿充分感受国庆的氛围,激发幼儿热爱祖国的情感,同时也给孩子和家长创造交流互动的机会 ,七彩童谣幼教中心举办了“画卷绘祖国,童心庆国庆”——百米画卷亲子绘画活动。

    生活 2021年10月1日