程序员开发实例大全宝库

网站首页 > 编程文章 正文

基于Snap7访问西门子PLC教程(8)-存储区读写(三)

zazugpt 2025-04-11 09:44:37 编程文章 51 ℃ 0 评论

本文是Snap7软件包系列教程的第8篇,该软件包可以通过PC端编程访问PLC的数据,如果你对它还不太熟悉,请点击归档文章(#北岛李工->Snap7上位机编程)查看之前的文章介绍。

上一篇文章我们介绍了用过程输入映像区(Process Input Image,I)和位存储区的读写函数。今天这篇文章,我们来介绍下定时器和计数器的读写函数,包括:

  • TMRead();
  • TMWrite();
  • CTRead();
  • CTWrite();

1、Snap7Client.TMRead()

Snap7Client的TMRead()方法可以从服务器(PLC)的指定位置读取n个定时器的数据并存放到缓存区,它的函数原型如下:

该方法的参数如下:

Snap7Client.TMRead()本质上是对ReadArea()方法进行封装,并且将参数Area设置为S7AreaTM;将参数WordLen设置为S7WLTimer;

缓存区(Buffer)的字节数应该是读取数量Amount的2倍;

举个例子:

假设要读取T0~T4的5个定时器的数据,则可以使用下面的代码:

上图中的ushort是16位无符号整数;

2、Snap7Client.TMWrite()

Snap7Client的TMWrite()方法可以将数据写入到服务器(PLC)定时器存储区的指定位置,它的函数原型如下:

该方法的参数如下:

Snap7Client.TMWrite()本质上是对WriteArea()方法进行封装,并且将参数Area设置为S7AreaTM;将参数WordLen设置为S7WLTimer;

缓存区(Buffer)的字节数应该是读取数量Amount的2倍;

举个例子:

假设要将T0的时间值设置为0x10,将T1的时间值设置为0x20,则可以使用下面的代码:

上图中的ushort是16位无符号整数;

3、Snap7Client.CTRead()

Snap7Client的CTRead()方法可以从服务器(PLC)的指定位置读取n个计数器的数据并存放到缓存区,它的函数原型如下:

该方法的参数如下:

Snap7Client.CTRead()本质上是对ReadArea()方法进行封装,并且将参数Area设置为S7AreaCT;将参数WordLen设置为S7WLCounter;

缓存区(Buffer)的字节数应该是读取数量Amount的2倍;

举个例子:

假设要读取C10~C14的5个计数器的数据,则可以使用下面的代码:

上图中的ushort是16位无符号整数;

4、Snap7Client.CTWrite()

Snap7Client的CTWrite()方法可以将数据写入到服务器(PLC)计数器存储区的指定位置,它的函数原型如下:

该方法的参数如下:

Snap7Client.CTWrite()本质上是对WriteArea()方法进行封装,并且将参数Area设置为S7AreaCT;将参数WordLen设置为S7WLCounter;

缓存区(Buffer)的字节数应该是读取数量Amount的2倍;

举个例子:

假设要将C40的数值设置为0x20,将C41的数值设置为0x30,则可以使用下面的代码:

好了,关于Snap7的定时器和计数器存储区读写就先介绍到这里,后续文章会继续介绍Snap7的其它功能。

我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版,欢迎点击下面的链接查看:

<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=6886289593453412868"></script>

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表