c#通过S7协议读写日期时间

Posted HwLib慧兰博

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#通过S7协议读写日期时间相关的知识,希望对你有一定的参考价值。

前几天看到群里有同学咨询怎么读写PLC日期时间格式的数据。以前确实倒也没在意这个问题,因为绝大部分情况下我们都是取计算机系统时间,很少会直接取PLC时间。

c#通过S7协议读写日期时间

图1 技术群交流信息

但凡事总有例外,有些情况下我们可能确实需要读写PLC日期时间该怎么办?其实Sharp7中已经内置了这样的方法,我们只要调用它进行转换就可以了。

PLC中常用的日期时间类型有Date_And_Time、DTL、LDT等。针对这几种类型,Sharp7都提供了相应的转换方法,参见下图所示。

c#通过S7协议读写日期时间

图2 Sharp7中的日期时间方法

需要注意的是,不同系列的PLC对日期时间类型的支持不同,比如S7-1200就不支持Date_And_Time和LDT类型,这点在编写程序时需要注意下。

下面我们以一个简单的例子来演示下日期时间格式数据的读写应用。首先新建一个博途项目,插入一个S7-1500。然后添加一个数据块,属性设置为标准访问,新建两个变量,类型分别为Date_And_Time和DTL。

c#通过S7协议读写日期时间

图3 创建数据块

创建一个C#项目,窗体上添加若干button、DateTimePicker控件,布局参见下图所示。

c#通过S7协议读写日期时间

图4 窗体控件布局

上图中有2个DateTimePicker控件,第一个用于读写类型Date_And_Time,第二个用于读写类型DTL。双击Date_And_Time中的读取按钮,输入下面的代码。

c#通过S7协议读写日期时间

图5 读取日期时间

在上图中,类型Date_And_Time占用8个字节,所以我们也要在方法S7.ReadArea中设置参数Amount的值为8,读取结果参见下图。

c#通过S7协议读写日期时间

图6 效果展示

双击Date_And_Time中的写入按钮,输入下面的代码。

c#通过S7协议读写日期时间

图7 写入日期时间

然后运行项目,通过控件DateTimePicker控件选择日期时间,点击写入按钮即可看到效果。同样地,对于类型DTL只需要调用方法S7.GetDTLAt和S7.SetDTLAt即可实现,感兴趣的同学可以自行测试一下。



HwLib(慧兰博)技术团队专注于高端自动化技术,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”

c#通过S7协议读写日期时间

关于HwLib(慧兰博)技术团队的更多信息:www.hwlib.com.cn

HwLib(慧兰博)技术团队技术资料:

https://pan.baidu.com/s/1t-5BPQmeUbWRVH9FJ-tjPg 

提取码:63rt





END



往期导读














专注于工业自动化高端编程应用

以上是关于c#通过S7协议读写日期时间的主要内容,如果未能解决你的问题,请参考以下文章

2021-12-03 WPF上位机 106-西门子S7协议之读写PLC时间方法流程解析

西门子PLC有几种通讯方式

维纶通触摸屏和s7-1200plc的字符串用那个

西门子S7协议数据采集内存读写调试软件工具

西门子S7协议数据采集内存读写调试软件工具

2021-11-27 WPF上位机 102-西门子S7协议之I区读写封装