S7-200的160个常见问题解答3 点击:318 | 回复:0



gmx_1234

    
  • 精华:61帖
  • 求助:0帖
  • 帖子:663帖 | 15回
  • 年度积分:0
  • 历史总积分:13653
  • 注册:2006年5月31日
发表于:2010-07-15 11:18:57
楼主
71:M区数据不够用怎么办

回答:有些用户习惯使用M 区作为中间地址,但S7-200CPU中M区地址空间
很小,只有32个字节,往往不够用.而S7-200CPU中提供了大量的V 区存储空间,
即用户数据空间.V存储区相对很大,其用法与M 区相似,可以按位,字节,字或
双字来存取V 区数据.例:V10.1, VB20, VW100, VD200等等.

72:我如何知道S7-200 CPU的集成I/O和扩展I/O寻址

S7-200编程时不必配置I/O地址.

S7-200扩展模块上的I/O地址按照离CPU的距离递增排列.离CPU越近,地
址号越小.
在模块之间,数字量信号的地址总是以8位(1个字节)为单位递增.如果CPU
上的物理输入点没有完全占据一个字节,其中剩余未用的位也不能分配给后续模块
的同类信号.
模拟量输出模块总是要占据两个通道的输出地址.即便有些模块(EM235)只
有一个实际输出通道,它也要占用两个通道的地址.
在编程计算机和CPU实际联机时,使用Micro/WIN的菜单命令"PLC >
Information",可以查看CPU和扩展模块的实际I/O地址分配.

73:最多可以调用多少子程序,子程序可以带参数吗
S7-200CPU最多可以调用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的Data Blocek(数据块)中定义V数据区存储单元
的初始值,下载数据块时,这些数值也被写入到相应的EEPROM单元中.
2)用特殊存储器SMB31,SMW32,用编程方法将V存储区的数据写入EEPROM
3)在System Block(系统块)中设置数据保持功能,可将MB0 - MB13的内容
在CPU断电时自动写入到EEPROM中

77:应用S7-200时,可以选用几种数据保持方法

1)CPU的内置超级电容,断电时间不太长时,可以为数据和时钟的保持提供
电源缓冲
2)CPU上可以附加电池卡,与内置电容配合,长期为时钟和数据保持提供电

3)设置系统块,在CPU断电时自动保存M区中的14个字节数据
4)在数据块中定义不需要更改的数据,下载到CPU内可以永久保存
5)用户编程使用相应的特殊寄存器功能,将数据写入EEPROM永久保存

78:S7-200系统中用到了几种存储器件

1)RAM: 易失性的存储器,失去电源供应后,其中保存的数据会丢失.S7-200
CPU中的RAM由超级电容+外插电池卡提供电源缓冲.RAM保存V,M,T(定
时器),C(计数器)等各数据区的内容,在CPU失电后的表现由用户在系统块"数
据保持"页中设置
2)EEPROM:非易失的电可擦除存储器,保存数据不需要供电,并且可以改
写其内容.上述RAM数据区中有的部分与EEPROM中的区域一一对应.用户程序
也永久保存在程序EEPROM区中
3)外插存储卡:非易失的存储器.用来保存用户程序,数据记录(归档),配
方数据,以及一些其他文件等

79:存储卡能否扩展CPU的程序存储空间

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

80:如何通过存储卡与CPU进行用户程序保存和传递

在Step7 MicroWin32中使用菜单命令PLC>Program Memory Cartridge 来向存
储卡中复制程序
为了把存储卡中的程序送到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:TP17


热门招聘
相关主题

官方公众号

智造工程师