找plc产品、学plc技术、看plc新闻-尽在PLC行业网!

PLC行业网-三菱plc编程入门,plc视频教程,plc学习,plc教程,plc编程实例

西门子plc S7-200常见问题故障+解决办法【精】(6)

时间:2013-01-11 19:43来源:未知 作者:www.plcs.cn 点击:

在编程计算机和CPU实际联机时,使用Micro/WIN的菜单命令“PLC>Information”,可以查看CPU和扩展模块的实际I/O地址分配。

73:最多可以调用多少子程序,子程序可以带参数吗?
S7-200 西门子plc CPU最多可以调用64个子程序(CPU226XM为128个)
子程序可以嵌套调用,即子程序中再调用子程序,一共可以嵌套8层
在中断服务程序中不能欠套调用子程序,被中断服务程序调用的子程序中不能再出现子程序调用
子程序可以带参数调用,在子程序的局部变量表中设置参数的类型;一共可以带16个参数(形式参数)

74:程序存储在哪里,会不会丢失?
回答:下载的程序存储在EEPROM中,将会永久保存,断电后不会丢失。程序的大小不能超过CPU用户程序空间的大小。

75:如何验证数据是否正确保存到了EEPROM中?
有两种方法可以验证数据是否正确保存到EEPROM中:
1)在“系统块-数据保持”设置中取消相应数据区(V存储区)的保持设置,则CPU在上电时会用EEPROM中相应区域的数值覆盖RAM中的数据,可以检查数据是否正确
2)使用Micro/WIN的Upload(上载)功能,将数据块上载到Micro/WIN项目中;上载的数据来源是EEPROM而不是RAM

76:数据如何写入EEPROM数据区?
1)在编程软件Micro/WIN的DataBlocek(数据块)中定义V数据区存储单元的初始值,下载数据块时,这些数值也被写入到相应的EEPROM单元中。
2)用特殊存储器SMB31、SMW32,用编程方法将V存储区的数据写入EEPROM
3)在SystemBlock(系统块)中设置数据保持功能,可将MB0-MB13的内容在CPU断电时自动写入到EEPROM中

77:应用S7-200时,可以选用几种数据保持方法?
1)CPU的内置超级电容,断电时间不太长时,可以为数据和时钟的保持提供电源缓冲
2)CPU上可以附加电池卡,与内置电容配合,长期为时钟和数据保持提供电源
3)设置系统块,在CPU断电时自动保存M区中的14个字节数据www.plcs.cn
4)在数据块中定义不需要更改的数据,下载到CPU内可以永久保存
5)用户编程使用相应的特殊寄存器功能,将数据写入EEPROM永久保存
78:S7-200系统中用到了几种存储器件?
1)RAM:易失性的存储器,失去电源供应后,其中保存的数据会丢失。S7-200CPU中的RAM由超级电容+外插电池卡提供电源缓冲。 RAM保存V、M、T(定时器)、C(计数器)等各数据区的内容,在CPU失电后的表现由用户在系统块“数据保持”页中设置
2)EEPROM:非易失的电可擦除存储器,保存数据不需要供电,并且可以改写其内容。上述RAM数据区中有的部分与EEPROM中的区域一一对应。用户程序也永久保存在程序EEPROM区中
3)外插存储卡:非易失的存储器。用来保存用户程序、数据记录(归档)、配方数据,以及一些其他文件等

79:存储卡能否扩展CPU的程序存储空间?
回答:存储卡不能扩展程序空间,S7-200CPU的程序空间是不能扩展的。

80:如何通过存储卡与CPU进行用户程序保存和传递?
在Step7MicroWin32中使用菜单命令PLC>ProgramMemoryCartridge来向存储卡中复制程序
为了把存储卡中的程序送到CPU中,必须先插入存储卡,然后给CPU上电,程序将自动复制到RAM及EEPROM中。

 

81:使用定时器加自复位做一个不断重复的计时,调用其他功能或子程序时,为何看起来工作不规律?
请注意《S7-200系统手册》中,关于三种定时器刷新规律的描述。
按这种方法使用定时器时,定时器的置位、复位可能与程序扫描周期不配合,存在造成上述问题的机制。定时比较短的定时任务应使用“定时中断”功能,这样更为可靠。

82:编了一个利用定时器的程序,在编译时已经通过,为何下载到CPU中时提示出错?
这种情况往往是调用的定时器号与定时器类型不配合造成的。参见帮助的表格,如T7只能用作TONR,而不能用于TON或TOF。

83:定时中断(SMB34/SMB35)最长定时为255ms,如何实现更长时间的定时?
可以采用T32/T96中断,最长时间可到32.767s。在定时中断服务程序中对进入中断的次数进行计数,也能实现更长时间的中断延时。

84:定时中断个数不够怎么办?
每个定时中断服务程序不一定只能处理一项定时任务,可以把几个任务放在一个定时中断服务程序中。
对于定时间隔不同的任务,可以计算出它们的定时长度的最大公约数,以此作为定时中断的时间设置。在中断服务程序内部对中断事件进行计数,据此编程别处理不同的任务。

85:使用子程序时,为何动作只能执行一次,或者某些状态不能结束?

如果发生动作不能重复执行,或者状态不能结束(像锁死了一样),而这些功能都与子程序有关时,请检查是否有条件调用子程序。调用子程序的条件在上述动作执行后,或者进入某个状态后不再有效,无法再次“激活”,而脱离上述状态或复位的指令正好在子程序内,必然造成上述的现象。

86:带形式参数的子程序,定义为OUT类型的变量为何会在多次调用子程序时互相干扰?
那是因为定义为OUT类型的形式参数又在子程序内部参与了运算。凡是此类参数都应当定义为IN_OUT类型。

87:与中断服务程序有关的计算任务,为何会偶尔得出不正确的结果?
出现这种现象的原因多是在主(子)程序和中断程序之间传递数据的机制不当。
中断程序可能在任何时刻执行,如果此时主程序(或子程序)正在对中断程序使用的数据进行操作,其中间结果可能带入中断程序,造成计算结果的变化;同样地,在中断程序中产生数据也对主(子)程序中的计算有类似影响。

88:中断服务程序看起来没有执行?
    可以在中断程序中加一个测试程序段,如使用SM0.0(常为“1”)将一个输出点置位(使用Set指令),观察是否进入中断服务程序。中断程序不执行,多数原因是初始化(连接中断事件和中断程序)的问题,或者没有“开中断”。应该使用SM0.1(或沿触发)执行一次初始化,然后开中断。

89:TP170、TP170 micro与S7-200相连接如何做“时钟同步”?

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
推荐内容