你当前的位置:首页 > 维护技术 >

S7-300的常见问题解答(七)

返回文章列表 作者:网管 时间:01-27 来源:亿电论坛  字体:【

  141:应用软件冗余当一个长度错误出现导致CPU处于STOP模式应该作些什么?
   当在OB100中设置软件冗余功能块FC100时,必须注意下列情况:参数IEC_NO 的背景数据块必须至少有两个字的长度,同样应用于冗余用户程序的参数 DB_NO的数据块也必须时这样。
  
  142:在S7程序中,有许多FC、FB块, 我怎样对其中的一些块进行保护, 而其它的块可以是开放的呢?
   1) Step7中, 可以先任意打开一块如OB1, 在"file"中选择"Generate Source"或快捷方式"Ctrl+T",弹出一个画面,填写"object name"如"tt",然后按OK确认,就会再弹出另一个画面,左边是你的程序中所有的块,如果你需要保护哪些块, 就把这些块移到右边,如FB1、FB2等等, 然后退出所有的程序块,再进入SIMATIC Manager中。
   2) 在S7 Program Sources找到文件tt,双击tt打开,在第四行中加入"Know_How_Protect", 然后编译, 无错后存盘。这样FB1、FB2就被保护住,如想去掉保护,在tt中去掉"Know_How_Protect"编译存盘即可。
   注意: 千万不要丢失或删除源文件(如tt), 否则程序被保护, 用户可以另存到其它目录中,或Export Source到硬盘中,再删除源文件,这样别人只能看到未保护的块。
  
  143:SFB41,SFB42,SFB43和FB41,FB42,FB43的区别?
   SFB41(CONT_C),SFB42(CONT_S),SFB43(PULSEGEN)块和FB41(CONT_C),FB42(CONT_S),FB43(PULSEGEN)的区别: SFB41,42,43与FB41,42,43的参数设置是一样的。SFB41,42,43只能用于CPU314IFM;FB41,42,43可用于CPU313以上的CPU(除CPU314IFM),因为SFB41,42,43集成于CPU314IFM中,而在普通CPU中没有这些块。
  
  144:如何在多例兼容功能块中找到变量地址?
   在多例兼容功能块中,为块参数和静态本地数据加载与地址寄存器AR2有关的绝对地址。如果要在情景数据块中找到变量的绝对地址,则必须把域内指针(只是AR2的地址)加载到变量地址。
  样例:
  TAR2 //将地址寄存器加载到累加器AC1(偏移量)
  UD DW#16#00FF_FFFF // 关闭区域ID
  L P##variable //加载变量地址
  +D // 增加偏移量和变量地址
  LAR1 // 保存地址寄存器AR1中的结果
  这样可在AR1中获得绝对地址以进行进一步处理。
   当功能块作为本地实例调用时,总要使用该方法。比如,在一个功能块中创建可做为类型“FB”的静态变量的功能块。这样所调用的情景数据块的数据偏移量就存储到情景数据块中。单个实例的偏移量在AR2中。如果不调用作为本地实例的功能块,则可以结束计算。值‘ 0’就在地址寄存器中。
  注意事项:如果改变程序中的地址寄存器AR2,那么也改变了变量的偏移量地址。因此就不能保证再对变量进行正确访问。在这种情况下,必须预先保存AR2,并 在对程序动作完之后将其 复位为初始状态。
  样例:
  TAR2 // 在累加器中加载偏移量地址
  T #save // 比如,静态本地数据域 0中的变量
  L DID 0 // 地址绝对是由DI加载的beds  L AR2 // 核对
  
  145:怎样才能访问上一函数的本地数据?
   如要访问以前的本地数据(“V-e > L”数据),可以传送一自创建ANY指针或绝对地址到被调用的FC。如果传送的是自创建ANY指针,区域指针会指向其本地数据,而这是无意义的。> 因此“V”区域码必须置于ANY指针中。此码必须准确传送。当指定绝对地址时可由编译器完成此工作。
  常规程序结构:
  以ANY指针或绝对(地址)方式传送:
  LAR1 P##target //本地定义的ANY变量初始地址
  L W#16#87 //为“V”区域载入码
  T LB[AR1,P#6.0] //传送到ANY变量
  CALL FCxy
  source1: = #target //传送自创建的ANY指针
  source2: = P#L 0.0 BYTE 8 //传送完全L数据区
  
  绝对寻址与通过ANY指针寻址的区别:
  下图显示了绝对寻址与通过自创建ANY指针寻址间的区别。在这种情况下“ 87”码不传送,因此ANY指针指向其本地区域。
  
  


  
  146:怎样在DB内进行间接寻址?
  
  请参照:
  在DB内进行间接寻址例子
  
  147:下面是一个在STEP7软件中实现简单指针寻址的例子程序,您可以参考它的结构实现您的指针寻址功能?
  
  siemens指针寻址例子_cpu315

  
文章相关
现有0条评论 | 更多评论..

我要发表看法



  如果您还不是本站会员
欢迎加入
  • ※ 评论注意事项:
  • 不是会员或未登陆发表评论,评论人名字显示为匿名。
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规。
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
  • 本站管理人员有权保留或删除评论中的任意内容。
  • 参与本评论即表明您已经阅读并接受上述条款。
站内搜索
本栏热门
1) 能提供整个计算机域内所有有关变量完整详尽的数据;(2) 可预测某特定工艺的变化过程和最终结果,使人们对过程变化规律有深入的了解;(3) 在测量方法有困难情况下是唯一的研究方法。此外,数字仿真还具有高效率、高精度等优点。
本文档基于 ProTool 或 ProTool/Pro V6 SP2 Asia 版本。 使用 ProTool 组态的 Simatic 系列面板按如下表格分类,基于文本面板TD17,OP3,OP5,OP7,OP15,OP17 图形面板OP25,OP27,TP27,OP35,OP37,TP37Windows面板TP170,OP170,TP270 , OP270,MP270,MP370
加密的300PLC MMC处理方法?以314C为例计数时如何清计数器值?为什么CP342-5 FO无法建立通讯?如何配置?CP342-5的3中工作方式有什么区别?CP342-5 最多能完成多少数据交换?如何实现在从站断电、通讯失败或从站通讯口损坏等现象出现时,主站能够不停机?
PLC作为一种成熟稳定可靠的控制器,目前已经在工业控制中得到了越来越广泛的应用。PLC系统的设计直接影响着工业控制系统的安全可靠运行。一个完善的PLC系统除了能够正常运行,满足工业控制的要求,还必须能在系统出现故障时及时进行故障诊断和故障处理。
使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?当DP从站不可用时,PROFIBUS上S7-300 CPU的监控时间是多少?如何判断电源或缓冲区出错,如:电池故障?为S7 CPU上的I/O模块(集中式或者分布式的)分配地址时应当注意哪些问题?

设为首页| 加入收藏| 联系我们
Copyright 2004-2007 Www.plc365.coM All Rights Reserved
免费提供PLC可编程控制器编程资料,应用案例,软件下载
请使用1024*768分辨率浏览本站以达到最佳视觉效果