西门子s300编程实例,【西门子S7-300PLC 编程 】该死的 FC+Temp
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相关推荐
- python图形化编程实例,python交互式图形编程实例(三)
本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...
- c语言二级编程实例,二级c语言编程 -实例
二级c语言编程 -实例 编程实例1. 题目:有 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都 是多少? 1.程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的 ...
- c语言二级编程实例,二级C语言编程_-实例.doc
二级C语言编程_-实例.doc 编程实例 ? 1.???????? 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3. ...
- c语言编程实例下载,C语言编程实例.doc
C语言编程实例.doc 第 3 章 请 你参考前请修改下,或者至少看明白, 2 include "string.h" include "stdio.h" mai ...
- python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...
这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...
- python编程实例下载-python网络编程之文件下载实例分析
本文实例讲述了python网络编程之文件下载实现方法.分享给大家供大家参考.具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单. 1.相应模块 ftp ...
- 川崎焊接机器人编程实例_机器人现场编程-川崎机器人示教-综合命令.pptx
川崎工业机器人示教 综合命令一 .综合命令示教一 .综合命令示教综合命令示教(又称一体化示教)编程,程序由"综合命令"来编辑.命令要素显示行程序行命令要素参数显示行二. 综合命令的 ...
- java中socket编程实例_Java中socket编程的实现过程(代码实例)
本篇文章给大家带来的内容是关于socket编程的实现过程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.socket 服务器搭建 实例化socket服务器,循环获取请求packa ...
- scpi编程实例 c语言,SCPI_编程语句中文解释_scpi编程实例,scpi编程手册
Standard Commands for Programmable Instruments的缩写,即程控仪器(可编程仪器)标准命令集.SCPI 是一种建立在现有标准IEEE488.1 和 IEEE ...
最新文章
- 永州科技学院有计算机专业吗,永州科技学院有哪些专业
- Kubernetes日志分析利器:Elassandra部署使用指南
- c语言奇数值结点链表,习题11-7 奇数值结点链表 (20 分)
- 笔记本Wifi连接出现“设置与网络连接不匹配”的解决方法
- windows 64位上eclipse访问hadoop
- ROS2学习(四).ROS 2 核心概念
- Oracle Linux 6.5 RPM安装Mysql 5.7.11
- saltstack案例 自助机
- 【算法】排序_基数排序
- 迭代时移除List中的元素的正确方式
- 超级终端连接华为交换机_win10深度系统怎么使用超级终端连接华为交换机?
- 正方教务管理系统服务器崩溃,正方教务管理系统应用中存在的问题及应对策略...
- 《离散数学及其应用》阅读感想(转载)
- 手把手教你使用微软官方文件免费恢复神器Windows File Recovery恢复文件
- 云计算 - 虚拟化技术Overview
- LabVIEW基础(1)
- Unity打包exe文件流程
- 数码相机和单反相机有什么区别?(已解决)
- 企业防止绿色软件监控
- 自媒体人如何搜集写作素材?建立自己的素材库