技术论坛

怎样让一个变量初始为上次退出时的值?

作者 主题
游士

经验值: 182
发帖数: 174
精华帖: 0
怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-05 16:56:07
是不是在退出时保存为文件啊。还是从归档中读取呢?
如有代码,请给出,谢谢!
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=164525&b_id=5&s_id=0&num=13

至圣

经验值: 28602
发帖数: 10825
精华帖: 131
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-05 20:03:18
只能用文件实现
微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
侠圣

经验值: 3120
发帖数: 2161
精华帖: 21
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-06 09:54:11
当WinCC运行画面启动时用这代码把data.txt文件中的数据读到变量tag1、tag2、tag3中去!
data.txt中的数据要分行储存(就是一行储存一个数据)!!!

FILE* pFile=NULL;
float temp;
pFile=fopen("C:\\data.txt","r");

rewind(pFile);
fscanf(pFile,"%s\n",temp);
SetTagFloat("tag1",temp);
fscanf(pFile,"%s\n",temp);
SetTagFloat("tag2",temp);
fscanf(pFile,"%s\n",temp);
SetTagFloat("tag3",temp);

fclose(pFile);

当退出wincc运行状态时通过脚本把数据存回文档中:

FILE* pFile2=NULL;
pFile2=fopen("C:\\data.txt","w");

rewind(pFile2);
fprintf(pFile2,"%4.1f\n",GetTagFloat("tag1"));
fprintf(pFile2,"%4.1f\n",GetTagFloat("tag2"));
fprintf(pFile2,"%4.1f\n",GetTagFloat("tag3"));

fclose(pFile2);
这样就可以了!我是这样做的把它用到项目中作为参数的初始化!
雄关漫道真如铁,而今迈步从头越!
以下网友喜欢您的帖子:

  
版主

经验值: 17323
发帖数: 8474
精华帖: 18
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-06 20:56:27
.ini文件更直观,而且不会发生变量名与值之间对错位的问题。
无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
新手

经验值: 30
发帖数: 15
精华帖: 0
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-06 22:36:41
我觉得把数据放在S7 PLC的DB块中是个实现起来很简单的方法。
 
以下网友喜欢您的帖子:

  
新手

经验值: 32
发帖数: 28
精华帖: 0
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-08 16:45:06
quote:以下是引用pelich在2005-09-06 22:36:41的发言:
我觉得把数据放在S7 PLC的DB块中是个实现起来很简单的方法。


好象不大行吧。
 
以下网友喜欢您的帖子:

  
版主

经验值: 17323
发帖数: 8474
精华帖: 18
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-08 17:27:06
在DB块中保存变量值,是天经地义的事情,直接用SetTag和GetTag命令写入与读出,省去了许多不必要的麻烦(当然前提是下位机空间不成问题,WinCC的点数也不是问题)。
但是与保存在硬盘中相比,感觉后者更叫人放心、安全。你说呢?
无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
侠士

经验值: 1053
发帖数: 931
精华帖: 2
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-08 21:44:59
用下位机方便多了。搞不懂,为什么非要把问题高复杂
一天学一点知识!
以下网友喜欢您的帖子:

  
游士

经验值: 182
发帖数: 174
精华帖: 0
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-09 08:00:03
另一个初学者做PLC,我做WINCC.
 
以下网友喜欢您的帖子:

  
游士

经验值: 237
发帖数: 168
精华帖: 0
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-09 09:08:35
我在写程序的时候,如果点数允许的话,我会把所有的输入输出,放到DB里面去,再写一个读入的FC,这样可以有与Wincc很好的有一个通讯的数据区,不是很乱!
我奋斗,所以我自信!
以下网友喜欢您的帖子:

  
游士

经验值: 152
发帖数: 137
精华帖: 0
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-09 09:47:35
不过对那个问题。S7-300如你组态好这个变量。只要你不更新它。那个值始终是保存的。
 
以下网友喜欢您的帖子:

  
游侠

经验值: 594
发帖数: 210
精华帖: 2
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-12 18:09:23
楼上老兄说得是什么意思,好像不对吧

楼主得意思是当wincc重启的时候,Wincc重启的时候初始值是0吧
流浪中寻找欢乐 欢乐中夹杂泪水
以下网友喜欢您的帖子:

  
至圣

经验值: 19840
发帖数: 8834
精华帖: 39
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-12 20:43:49
plc和上位机各有各的作用。象一些配方数据,你不可能都把他们储存在plc的数据区中的,特别是一些很大的配方。
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6879
发帖数: 5350
精华帖: 25
回复:怎样让一个变量初始为上次退出时的值?


只看楼主 2005-09-14 20:39:25
可以用用户归档实现
不过现在没有时间研究

如果不多可以放到PLC
如果是配方 那就用户归档或者写到文件

怎么论坛改成这样了??
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
怎样让一个变量初始为上次退出时的值?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。