c#通过S7协议读写日期时间
Posted HwLib慧兰博
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#通过S7协议读写日期时间相关的知识,希望对你有一定的参考价值。
前几天看到群里有同学咨询怎么读写PLC日期时间格式的数据。以前确实倒也没在意这个问题,因为绝大部分情况下我们都是取计算机系统时间,很少会直接取PLC时间。
图1 技术群交流信息
但凡事总有例外,有些情况下我们可能确实需要读写PLC日期时间该怎么办?其实Sharp7中已经内置了这样的方法,我们只要调用它进行转换就可以了。
PLC中常用的日期时间类型有Date_And_Time、DTL、LDT等。针对这几种类型,Sharp7都提供了相应的转换方法,参见下图所示。
图2 Sharp7中的日期时间方法
需要注意的是,不同系列的PLC对日期时间类型的支持不同,比如S7-1200就不支持Date_And_Time和LDT类型,这点在编写程序时需要注意下。
下面我们以一个简单的例子来演示下日期时间格式数据的读写应用。首先新建一个博途项目,插入一个S7-1500。然后添加一个数据块,属性设置为标准访问,新建两个变量,类型分别为Date_And_Time和DTL。
图3 创建数据块
创建一个C#项目,窗体上添加若干button、DateTimePicker控件,布局参见下图所示。
图4 窗体控件布局
上图中有2个DateTimePicker控件,第一个用于读写类型Date_And_Time,第二个用于读写类型DTL。双击Date_And_Time中的读取按钮,输入下面的代码。
图5 读取日期时间
在上图中,类型Date_And_Time占用8个字节,所以我们也要在方法S7.ReadArea中设置参数Amount的值为8,读取结果参见下图。
图6 效果展示
双击Date_And_Time中的写入按钮,输入下面的代码。
图7 写入日期时间
然后运行项目,通过控件DateTimePicker控件选择日期时间,点击写入按钮即可看到效果。同样地,对于类型DTL只需要调用方法S7.GetDTLAt和S7.SetDTLAt即可实现,感兴趣的同学可以自行测试一下。
HwLib(慧兰博)技术团队专注于高端自动化技术,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”
关于HwLib(慧兰博)技术团队的更多信息:www.hwlib.com.cn
HwLib(慧兰博)技术团队技术资料:
https://pan.baidu.com/s/1t-5BPQmeUbWRVH9FJ-tjPg
提取码:63rt
END
往期导读
专注于工业自动化高端编程应用
以上是关于c#通过S7协议读写日期时间的主要内容,如果未能解决你的问题,请参考以下文章