快捷搜索:  汽车  科技

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)在弹出的对话框中浏览到你下载文件的存放位置,如下图所示:打开博途开发环境(我使用的是V16),新建一个项目并打开。在右侧的导航栏单击“库”选项卡,在全局库中单击下图的“打开全局库”图标可以到西门子官网下载,或在公众号(founderchip)底部输入口令“lcom”。1.2、如何添加到项目中?关于函数库的加载,我曾经在通用函数库(LGF)的文章中介绍过,这里我们再介绍一遍。

S7-1200/1500通信库LCom是西门子官方推出的用于博途环境下的通信库,使用该通信库,通过简单的配置即可在两个设备之间基于TCP协议进行数据交换。LCom除了可用于标准的TCP通信,还自定义了一个称为LCom的附加协议。今天这篇文章,我们先来介绍下LCom通信库。

本文包括如下两个主题:

  • 如何下载LCom库并添加到项目中;
  • LCom库文件介绍;

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)(1)

1、如何下载LCom库并添加到项目中

1.1、如何下载?

可以到西门子官网下载,或在公众号(founderchip)底部输入口令“lcom”。

1.2、如何添加到项目中?

关于函数库的加载,我曾经在通用函数库(LGF)的文章中介绍过,这里我们再介绍一遍。

打开博途开发环境(我使用的是V16),新建一个项目并打开。在右侧的导航栏单击“库”选项卡,在全局库中单击下图的“打开全局库”图标

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)(2)

在弹出的对话框中浏览到你下载文件的存放位置,如下图所示:

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)(3)

目前最新的LCom库版本是V2.0.6,早期开发环境是博途V14版本。我们使用博途V16打开会自动升级,并保存一个V16版本的库。默认情况下,我们以只读的方式打开,如下图所示:

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)(4)

2、LCom库文件介绍

LCom库由三部分组成:

  • 函数库代码:LCom_Communication;
  • 函数库常量:LCom_Constants;
  • 函数库自定义类型:typeLCom_Config和typeLCom_Diagnostics

为了能正常使用该通信库,需要如下操作:

  • 将函数库代码(LCom_Communication)复制到项目的“程序块”中,可以新建一个分组(文件夹)以标识;
  • 将函数库常量(LCom_Constants)复制到项目的“PLC变量”中;
  • 函数库自定义类型(typeLCom_Config和typeLCom_Diagnostics)复制到项目的“PLC数据类型”中;

接下来我们介绍下LCom_Communication的参数。

创建一个函数块(比如FB100),将LCom_Communication拖放到该函数块中,可以看到LCom_Communication的参数,如下图所示:

西门子博途1200plc(西门子博途S7-12001500通信库LCom介绍)(5)

各参数的含义如下:

2.1、输入参数

名称

数据类型

说明

enable

BOOL

上升沿与通信伙伴建立连接

send

BOOL

上升沿发送数据

sendDataLength

UDInt

数据的长度(字节数)

readDataLength

UDInt

详见2.1①

configuration

typeLCom_Config

详见数据类型:

typeLCom_Config

2.1①、readDataLength,用于设置数据读取的时机,分两种情况:

  • 不使用LCom协议时:0=不读取TCP缓冲区;1~4294967294=等待TCP缓冲区处于可读取状态,设置输出位“dataReceived”为TRUE,设置值之外的数据依然存放在TCP缓冲区;4294967295(16#FFFFFFFF)=立即读取TCP缓冲区的所有可用数据 (默认);
  • 使用LCom协议时:0=不读取TCP缓冲区;1~4294967294=不相关;4294967295(16#FFFFFFFF)=不相关;

2.2、输出参数

名称

数据类型

说明

connected

BOOL

通信是否建立,1=建立

sending

BOOL

数据是否已经被发送,1=已经发送

dataReceived

BOOL

已经接收到新数据

receivedDataLength

UDInt

接收数据的长度,以字节为单位

busy

BOOL

是否繁忙,1=繁忙

error

BOOL

是否出错,1=出错

status

WORD

状态字

2.3、输入/输出参数

名称

数据类型

说明

sendBuffer

Variant

数据发送缓存区

receiveBuffer

Variant

数据接收缓存区

diagnostics

typeLCom_Diagnostics

诊断数据缓存区

限于篇幅,typeLCom_Config和typeLCom_Diagnostics我们就在下一篇文章详细介绍吧。

猜您喜欢: