用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
西门子S7-200PLC的160个常见问题之三
[正文]: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、tp170micro与s7-200相连接如何做“时钟同步”?tp170默认的时钟格式与s7-200时钟指令所读取的时间日期格式有所区别,读出的时钟需要改变格式才能与tp170等做时钟同步。
在tp170的组态软件protool的在线帮助中有相关的介绍。
90:高速计数器怎样占用输入点高速计数器根据被定义的工作模式,按需要占用cpu上的数字量输入点。
每一个计数器都按其工作模式占用固定的输入点。
在某个模式下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然访问到。
91:为什么高速计数器不能正常工作在程序中要使用初次扫描存储器位sm0.1来调用hdef指令,而且只能调用一次。
如果用sm0.0调用或者第二次执行hdef指令会引起运行错误,而且不能改变第一次执行hdef指令时对计数器的设定。
92:对高速计数器如何寻址为什么从smdx中读不出当前的计数值?可以直接用hc0;hc1;hc2;hc3;hc4;hc5对不同的高速计数器进行寻址读取当前值,也可以在状态表中输入上述地址直接监视高速计数器的当前值。
smdx不存储当前值。
高速计数器的计数值是一个32位的有符号整数。
93:高速计数器如何复位到0?选用带外部复位模式的高速计数器,当外部复位输入点信号有效时,高速计数器复位为0也可使用内部程序复位,即将高速计数器设定为可更新初始值,并将初始值设为0,执行hsc指令后,高数计数器即复位为094:高速计数器的值在复位后是复位到初始值还是“0”值外部复位会将当前值复位到0值而不是初始值;内部复位则将当前值复位到初始值。
如果你设定了可更新初始值,但在中断中未给初始值特殊寄存器赋新值,则在执行hsc指令后,它将按初始化时设定的初始值赋值。
95:为何给高速计数器赋初始值和预置值时后不起作用,或效果出乎意料高速计数器可以在初始化或者运行中更改设置,如初始值、预置值。
其操作步骤应当是:1)设置控制字节的更新选项。
需要更新哪个设置数据,就把控制字节中相应的控制位置位(设置为“1”);不需要改变的设置,相应的控制位就不能设置2)然后将所需的值送入初始值和预置值控制寄存器3)执行hsc指令96:使用pto/pwm发生器的功能应使用什么类型的cpu?应使用24vdc晶体管输出的cpu,继电器输出的绝对不行。
97:pto或pwm输出的幅值是多少?pto或pwm输出的幅值为24v(高电平有效,共负端连接),若想实现输出其他电压的幅值,需自己加转换器来实现。
98:在pto脉冲串执行过程中,你能否通过pls指令改变其周期值?不行,必须终止pto输出后才能改变周期值。
99:如何强制停止pto或pwm输出?可以通过编程将控制字节中的使能位sm66.7或sm76.7清零,然后执行pls指令,便可立即停止pto或pwm输出。
100:为何输出信号的指示灯已亮,却没有良好的电压波形输出,或者有时丢脉冲?pto或pwm输出负载最小不能低于额定负载的10%;即在输出为高电平的状态下,负载电流不低于140ma。
s7-200的160个常见问题解答之六101:如何计算pto的周期增量?   pto的脉冲周期增量公式为:周期增量=(终止周期–初始周期)/脉冲数   102:当周期小于50μs时为何不能获得满意的波形输出?      因为限制pwm输出的因素有两个:   1)硬件输出电路响应速度的限制,对于q0.0q0.1从断开到接通为2μs,从接通到断开10μs,因此最小脉宽不可能小于10μs。
   2)最大的频率为20k,因此最小周期为50μs。
   所以如果脉宽低于50μs的波形无法保证。
   103:如何改变pwm输出的周期/脉冲宽度?      pwm功能可以在初始化时设置脉冲的周期和宽度,也可以在连续输出脉冲时很快地改变上述参数。
其操作步骤为:   1)设置控制字节,以允许写入(或者更新)相应的参数   2)将相应的特殊存储器写入新的周期/脉宽值   3)执行pls指令,对pto/pwm发生器进行硬件设置变更   104:pid输出在最大值与最小值之间振荡(曲线接触到坐标轴)如何办?   回答:降低pid初始输出步长值(initialoutputstep)   105:pid自整定面板显示如下信息:“theautotunealgorithmwasabortedduetoazero-crossingwatchdogtimeout.”即自整定计算因为等待反馈穿越给定值的看门狗超时而失败如何办?   回答:确定在启动pid自整定前,过程变量和输出值已经稳定。
并检查watchdogtime的值,将其适当增大。
   106:pid输出总是输出很大的值,并在这一区间内波动如何办?   回答:增益(gain)值太高或pid扫描时间(sampletime)太长(对于快速响应pid的回路)解决方法:降低增益(gain)值并且/或选择短一些的扫描时间   107:过程变量超过设定值很多(超调很大)如何办?      回答:积分时间(integraltime)可能太高。
解决方法:降低积分时间   108:pid输出非常不稳定是什么原因?   回答:产生原因:   1)如果用了微分,可能是微分参数有问题   2)没有微分,可能是增益(gain)值太高   解决方法:   1)调整微分参数到0-1的范围内   2)根据回路调节特性将增益值降低,最低可从0.x开始逐渐增大往上调,直到获得稳定的pid。
   109:对于某个具体的pid控制项目,是否可能事先得知比较合适的参数?有没有相关的经验数据?      虽然有理论上计算pid参数的方法,但由于闭环调节的影响因素很多而不能全部在数学上精确地描述,计算出的数值往往没有什么实际意义。
因此,除了实际调试获得参数外,没有什么可用的经验参数值存在。
甚至对于两套看似一样的系统,都可能通过实际调试得到完全不同的参数值。
   110:s7-200控制变频器,在变频器也有pid控制功能时,应当使用谁的pid功能?      可以根据具体情况使用。
一般来说,如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等,可以优先考虑使用变频器的pid功能。



网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-02 03:13:21) 流量统计