S7-1200/1500通信库LCom是西门子官方推出的用于博途环境下的通信库,使用该通信库,通过简单的配置即可在两个设备之间基于TCP协议进行数据交换。LCom除了可用于标准的TCP通信,还自定义了一个称为LCom的附加协议。今天这篇文章,我们先来介绍下LCom通信库。
本文包括如下两个主题:
如何下载LCom库并添加到项目中;
LCom库文件介绍;
1、如何下载LCom库并添加到项目中
1.1、如何下载?
可以到西门子官网下载,或在公众号(founderchip)底部输入口令“lcom”。
1.2、如何添加到项目中?
关于函数库的加载,我曾经在通用函数库(LGF)的文章中介绍过,这里我们再介绍一遍。
打开博途开发环境(我使用的是V16),新建一个项目并打开。在右侧的导航栏单击“库”选项卡,在全局库中单击下图的“打开全局库”图标
在弹出的对话框中浏览到你下载文件的存放位置,如下图所示:
目前最新的LCom库版本是V2.0.6,早期开发环境是博途V14版本。我们使用博途V16打开会自动升级,并保存一个V16版本的库。默认情况下,我们以只读的方式打开,如下图所示:
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的参数,如下图所示:
各参数的含义如下:
2.1①、readDataLength,用于设置数据读取的时机,分两种情况:
不使用LCom协议时:0=不读取TCP缓冲区;1~4294967294=等待TCP缓冲区处于可读取状态,设置输出位“dataReceived”为TRUE,设置值之外的数据依然存放在TCP缓冲区;4294967295(16#FFFFFFFF)=立即读取TCP缓冲区的所有可用数据 (默认);
使用LCom协议时:0=不读取TCP缓冲区;1~4294967294=不相关;4294967295(16#FFFFFFFF)=不相关;