苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

如何在西门子PLC中读取以前的值

[复制链接]
1 51

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
文章大纲:

I. 前言
    A. 西门子PLC的基础介绍
    B. 挑战:如何读取以前的值?

II. 了解西门子PLC数据存储结构
    A. 西门子PLC的数据类型
        1. 位(bit)
        2. 字节(byte)
        3. 字(word)
        4. 双字(dword)等
    B. 西门子PLC中数据的存储方式
        1. 程序区(CPU存储)
        2. 数据块(DB)
        3. 全局数据区(system data)

III. 读取以前的值
    A. 利用西门子PLC的历史数据记录功能
        1. 配置数据记录块
        2. 通过SFC函数块实现读取历史数据
    B. 利用内存地址和指针来读取
        1. 记录变量地址
        2. 通过指针实现读取以前的值

IV. 示例代码
    A. 利用历史数据记录功能
        1. 程序示例
        2. 数据块示例
    B. 利用内存地址和指针实现
        1. 程序示例
        2. 数据块示例

V. 注意事项和总结
    A. 避免出现潜在风险
    B. 总结

I. 前言
西门子PLC(Programmable Logic Controller)是一种广泛应用于工业自动化领域的设备。在PLC编程中,读取以前的某个点的值是必须的,因为它能帮助我们分析问题并进行后续的处理。在本文中,我们将讲述如何在西门子PLC中读取以前的值。

II. 了解西门子PLC数据存储结构
在学习之前,需要了解西门子PLC的数据类型和存储方式。实际上,西门子PLC中的数据类型有很多,包括位、字节、字、双字等。每种数据类型所占用的字节数也不同。

此外,西门子PLC中的数据有三种存储方式:程序区,数据块和全局数据区。

数据记录块是一种特殊的数据块,只有在预定义的条件下才能使用。这种特殊的数据块能够在PLC操作期间自动存储值。可以通过SFC函数块读取历史值。

III. 读取以前的值
在了解了数据结构之后,我们可以利用数据记录块或内存地址和指针来读取以前的值。

A. 利用西门子PLC的历史数据记录功能
首先,我们需要创建一个数据记录块,该块在特定的条件下会自动记录变量的值。然后,我们可以编写SFC函数块来读取数据记录块中的历史数据。

B. 利用内存地址和指针来读取
其次,我们也可以通过记录变量地址并利用指针来读取以前的值。这种方式需要注意存储位置和变量类型。

IV. 示例代码
以下是两种读取以前的值的示例代码。

A. 利用历史数据记录功能
程序示例:

```
DATA_BLOCK DB1
  VAR_TEMP : INT;
  HIS_TEMP : HISTORY_TEMPLATE :=(
    CLASS := HISTORY_CLASS,
    MAX_ENTRIES := 10);
END_DATA_BLOCK

TEMP := 0;
HISTORY_CONTROL(IN := TRUE, ADDR := ADDR(HIS_TEMP), VALUE := TEMP);

FOR i := 1 TO 10 DO
  HISTORY_READ(IN := HIS_TEMP.HISTORY_CLASS,
  ENTRY := HIS_TEMP.MAX_ENTRIES - i +1 ,
  OUT => TEMP);
  // 这里获得以前的值
  END_FOR;
```

数据块示例:

```
DATA_BLOCK DB1
  HIS_TEMP : HISTORY_TEMPLATE :=(
    CLASS := HISTORY_CLASS,
    MAX_ENTRIES := 10);
END_DATA_BLOCK

TEMP := 0;
HISTORY_CONTROL(IN := TRUE, ADDR := ADDR(HIS_TEMP), VALUE := TEMP);

// 获得以前的值
FOR i := 1 TO 10 DO
  HISTORY_READ(IN := HIS_TEMP.HISTORY_CLASS,
  ENTRY := HIS_TEMP.MAX_ENTRIES - i +1 ,
  OUT => TEMP);
  // 这里获得以前的值
  END_FOR;
```

B. 利用内存地址和指针实现
程序示例:

```
DATA_BLOCK DB1
  TEMP_OLD : INT := 0;
  TEMP_NEW : INT := 0;
END_DATA_BLOCK

// 记录变量地址
OLD_ADDR := ADDR(DB1.TEMP_OLD);
NEW_ADDR := ADDR(DB1.TEMP_NEW);

// 利用指针来读取以前的值
POINTER_TO_OLD := P#OLD_ADDR;
OLD_VALUE := POINTER_TO_OLD^;
```

数据块示例:

```
DATA_BLOCK DB1
  TEMP_OLD : INT := 0;
  TEMP_NEW : INT := 0;
END_DATA_BLOCK

// 记录变量地址
OLD_ADDR := ADDR(DB1.TEMP_OLD);
NEW_ADDR := ADDR(DB1.TEMP_NEW);

// 利用指针来读取以前的值
POINTER_TO_OLD := P#OLD_ADDR;
OLD_VALUE := POINTER_TO_OLD^;
```

V. 注意事项和总结
需要注意的是,读取以前的值可能会导致内存的消耗过大,因此在使用过程中需要十分谨慎。

在本文中,我们阐述了西门子PLC中如何读取以前的值。通过对西门子PLC的基础知识的了解,我们可以通过数据记录块或内存地址和指针来实现这一目标。

________________________________________________________________________

免责声明:本文非官方发布,内容真实性请注意甄别,文章内容仅供参考。本站不对内容真实性负责,请悉知!本站不对内容真实性负责,请悉知!。我们专注于汇川技术产品培训,官网https://shicaopai.com

相关帖子

回复

使用道具 举报

shicaopai 2023-6-24 05:01:09 | 显示全部楼层
随着工业自动化的发展,西门子PLC也得到了广泛的应用。在真实的生产环境中,PLC编程需要对历史数据进行分析和处理。通过读取以前的值,我们可以更好地理解过去的状态并做出更好的决策。

在本文中,我们主要介绍了两种读取以前的值的方法。第一种方法是利用了西门子PLC的历史数据记录功能,创建一个数据记录块来自动记录变量的值,并通过SFC函数块来读取历史数据。第二种方法则是通过记录变量地址并利用指针来读取以前的值。

除此之外,还有一些其他的注意事项。例如,在使用数据记录块时,需要确认特定条件下是否会自动记录变量的值;同时,在使用指针读取以前的值时,需要注意存储位置和变量类型等问题。

最后,在PLC编程中,读取以前的值常常是必须的。只有通过对PLC的基础知识的理解,并掌握相应的技巧和方法,才能更好地应对真实的生产环境中的问题。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节628课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节628课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部