S7-1200/1500通信库LCom是西门子官方推出的用于博途环境下的通信库,使用该通信库,通过简单的配置即可在两个设备之间基于TCP协议进行数据交换。LCom除了可用于标准的TCP通信,还自定义了一个称为LCom的附加协议。今天这篇文章,我们先来介绍下LCom通信库。
本文包括如下两个主题:
1、如何下载LCom库并添加到项目中
1.1、如何下载?
可以到西门子官网下载,或在公众号(founderchip)底部输入口令“lcom”。
1.2、如何添加到项目中?
关于函数库的加载,我曾经在通用函数库(LGF)的文章中介绍过,这里我们再介绍一遍。
打开博途开发环境(我使用的是V16),新建一个项目并打开。在右侧的导航栏单击“库”选项卡,在全局库中单击下图的“打开全局库”图标
在弹出的对话框中浏览到你下载文件的存放位置,如下图所示:
目前最新的LCom库版本是V2.0.6,早期开发环境是博途V14版本。我们使用博途V16打开会自动升级,并保存一个V16版本的库。默认情况下,我们以只读的方式打开,如下图所示:
2、LCom库文件介绍
LCom库由三部分组成:
为了能正常使用该通信库,需要如下操作:
接下来我们介绍下LCom_Communication的参数。
创建一个函数块(比如FB100),将LCom_Communication拖放到该函数块中,可以看到LCom_Communication的参数,如下图所示:
各参数的含义如下:
2.1、输入参数
名称 | 数据类型 | 说明 |
enable | BOOL | 上升沿与通信伙伴建立连接 |
send | BOOL | 上升沿发送数据 |
sendDataLength | UDInt | 数据的长度(字节数) |
readDataLength | UDInt | 详见2.1① |
configuration | typeLCom_Config | 详见数据类型: typeLCom_Config |
2.1①、readDataLength,用于设置数据读取的时机,分两种情况:
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我们就在下一篇文章详细介绍吧。