start和driver是外部输入输出接口。

例:如果在TEMP接口中新建一个变量A,数据类型为BOOL,地址0.0

1,正确的FC程序如下:

| #start #A

|--| |---------()

|

| #A #driver

|--|/|---------()

2,错误的例子:

| #A #driver

|--|/|---------()

|

| #start #A

|--| |---------()

分析:

程序的扫描是从上到下。S7 FC中的接口TMEP中的变量必须遵守:先赋值后使用的原则。

1程序,当start的值从0变为1,A也将从0变为1。扫描到第一段程序时,因为A的值已经发生改变,程序将成功扫描到A的常闭触点从1变为0,那么driver线圈将成功得从原来的1改变为0。

2程序,因为扫描到第一段程序的时候CPU没有发现A的值改变。之后A值将一直保持不变,即使start的值从0变为1,A值也不会发生改变;结果是程序没有反应。

下面是大家的一些心得体会

西门子这一点比其他的PLC都灵活,FB的DB作为FB的变量的固定存放地址,而Temp则是有系统分配临时区L地址。比如:存在FC1,FC2两个功能,它们都有两个Temp,那么当调用FC1时,系统分配L区域地址给FC1的Temp,如分配了LB0,LB1,那么当FC1调用完成后,系统认为LB0,LB1已经不需要,但是西门子的系统不会对临时区进行清零,只是继续分配,当调用FC2时,系统将LB0,LB1重新分配给FC2的Temp,此时如果不遵循先赋值后使用的准则,那么FC2的Temp使用的值将是FC1的Temp的值。

临时变量可以用于所有块中

(OB, FC, FB)。当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。因此, 在PLC扫描运行时,

FC块中的临时变量TEMP不能自锁!

如果FC块, 请你使用全局变量(标志位和数据块)来存储数据,实现自锁!

如果FB块, 除了全局变量之外, 你也可以使用静态变量来存储数据,实现自锁!

TEMP变量不能自锁的原因显而易见:

每个扫描周期开始时,TEMP变量的值并不像Q或M那样可以保持上个周期的值。除非明确对其赋值,否则它的值是不确定的。

我使用TEMP只有一个原则:

第一次出现某个TEMP变量,必须是对其赋值(或线圈刷新)的写指令,而不能是读指令。

如果出现问题,建议使用STAT变量替代。

对TEMP的认识都有问题!

我的建议是做逻辑不用TEMP,只在做运算是用TEMP,会省去很多麻烦

------------------------------------------------------------------------------------

关注老鬼微信:hispeed

【一起学习技术一起感悟人生】

启程自动化培训,专注于西门子控制系统、PLC、系统集成技术培训。

启程自动化培训,相信专注的力量。

西门子s300编程实例,【西门子S7-300PLC 编程 】该死的 FC+Temp相关推荐

  1. python图形化编程实例,python交互式图形编程实例(三)

    本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...

  2. c语言二级编程实例,二级c语言编程 -实例

    二级c语言编程 -实例 编程实例1. 题目:有 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都 是多少? 1.程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的 ...

  3. c语言二级编程实例,二级C语言编程_-实例.doc

    二级C语言编程_-实例.doc 编程实例 ? 1.???????? 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3. ...

  4. c语言编程实例下载,C语言编程实例.doc

    C语言编程实例.doc 第 3 章 请 你参考前请修改下,或者至少看明白, 2 include "string.h" include "stdio.h" mai ...

  5. python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...

    这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...

  6. python编程实例下载-python网络编程之文件下载实例分析

    本文实例讲述了python网络编程之文件下载实现方法.分享给大家供大家参考.具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单. 1.相应模块 ftp ...

  7. 川崎焊接机器人编程实例_机器人现场编程-川崎机器人示教-综合命令.pptx

    川崎工业机器人示教 综合命令一 .综合命令示教一 .综合命令示教综合命令示教(又称一体化示教)编程,程序由"综合命令"来编辑.命令要素显示行程序行命令要素参数显示行二. 综合命令的 ...

  8. java中socket编程实例_Java中socket编程的实现过程(代码实例)

    本篇文章给大家带来的内容是关于socket编程的实现过程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.socket 服务器搭建 实例化socket服务器,循环获取请求packa ...

  9. scpi编程实例 c语言,SCPI_编程语句中文解释_scpi编程实例,scpi编程手册

    Standard Commands for Programmable Instruments的缩写,即程控仪器(可编程仪器)标准命令集.SCPI 是一种建立在现有标准IEEE488.1 和 IEEE ...

最新文章

  1. 永州科技学院有计算机专业吗,永州科技学院有哪些专业
  2. Kubernetes日志分析利器:Elassandra部署使用指南
  3. c语言奇数值结点链表,习题11-7 奇数值结点链表 (20 分)
  4. 笔记本Wifi连接出现“设置与网络连接不匹配”的解决方法
  5. windows 64位上eclipse访问hadoop
  6. ROS2学习(四).ROS 2 核心概念
  7. Oracle Linux 6.5 RPM安装Mysql 5.7.11
  8. saltstack案例 自助机
  9. 【算法】排序_基数排序
  10. 迭代时移除List中的元素的正确方式
  11. 超级终端连接华为交换机_win10深度系统怎么使用超级终端连接华为交换机?
  12. 正方教务管理系统服务器崩溃,正方教务管理系统应用中存在的问题及应对策略...
  13. 《离散数学及其应用》阅读感想(转载)
  14. 手把手教你使用微软官方文件免费恢复神器Windows File Recovery恢复文件
  15. 云计算 - 虚拟化技术Overview
  16. LabVIEW基础(1)
  17. Unity打包exe文件流程
  18. 数码相机和单反相机有什么区别?(已解决)
  19. 企业防止绿色软件监控
  20. 自媒体人如何搜集写作素材?建立自己的素材库

热门文章

  1. oracle 11.2 on hpunix 挂起
  2. openwrt 7621内核启动异常,解决办法记录
  3. 2-6 磁盘阵列和LVM
  4. 抽象类和接口的应用场景
  5. 阿里腾讯“主战场”揭幕:马云33亿入股恒生电子
  6. 2021-10-24阳光分班之随机分班(后附源码)
  7. 通达OA精灵2015登录时提示“库没有注册”的处理办法
  8. webview加载网页出现白屏
  9. IHE DICOM测试说明
  10. Java下载Excel兼容性问题