电动机功率 | 3kW | 外形尺寸 | 2mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 4kg |
全新的西门子S7-200SMART带来两种不同类型的CPU 模块,标准型和经济型,*满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展CPU 模块,可满足对I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型CPU 模块直接通过单机本体满足相对简单的控制需求。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-08-02 15:18:57浏览次数:174
联系我们时请说明是化工仪器网上看到的信息,谢谢!
海南西门子S7-200SMARTPLC模块代理经销商
西门子S7-200 PLC高速计数器的初始化
为了更好地理解高速计数器的工作情况,下面给出了初始化过程。在这里,以HSC1为例来讨论。并假定,S7-200刚处于RUN模式(SM0.1为1)。如果实际情况不是这样,则一定要记住:在进入RUN模式,对任一高速计数器,只可使用一次HDEF指令。若重复执行HDEF指令,就会产生一个运行错误,且在*次执行HDEF指令时设置的计数器的有关参数不会被改变。
1)模式0、1、2的初始化。下面为对HSC1的单相加/减计数且具有内部计数方向的初始化步骤(模式0、1、2)。
·利用SM0.1来调用一子程序,在此子程序中编写初始化程序。通过子程序调用,使其后的扫描周期不会再次调用此子程序,减少了扫描时间,且程序更具结构化。
·在初始化子程序中,根据需要向SMB47装入控制字节,如SMB47 =16#F8,意味着:允许计数,写入新的当前值,写入新的预置值,设置为加计数,启动和复位信号高电平有效。
·执行HDEF指令,且采用下面的输入参数:HSC端为1。MODE端当无外部复位端和启动输入端时为0。当有外部复位端但无启动端时为1。当有外部复位端和启动端时为2。
·将希望的当前计数值装入SMD48(双字长)(装入0则可实现清除)。
·将希望的预置值装入SMD52(双字长)。
·为捕获当前值等于预置值这一事件,编程将相应的事件号( event13)与一个中断程序相关联。
·为捕获外部复位事件,编一个中断程序并将它与中断事件15相关联。
·执行全局开中断指令(ENI)来允许HSC1中断。
·执行HSC指令使S7-200编程HSC1。
·退出子程序。
2)模式3、4、5的初始化。下面为对HSC1的单相加/减且具有外部计数方向的初始化步骤(模式3、4、5)。
·利用SM0.1来调用一子程序,在此子程序中编写初始化程序。通过子程序调用,使其后的扫描周期不会再次调用此子程序,减少了扫描时间,且程序更具结构化。
·在初始化子程序中,根据需要向SMB47装入控制字节,如SMB47 =16#F8,意味着:允许计数,写入新的当前值,写入新的预置值,设置初始时为加计数,启动和复位信号高电平有效。
·执行HDEF指令,且采用下面的输人参数:HSC端为1。MODE端当无外部复位端和启动输入端时为3。当有外部复位端但无启动端时为4。当有外部复位端和启动端时为5。
·将希望的当前计数值装入SMD48(双字长)(装入0则可实现清除)。
·将希望的预置值装入SMD52(双字长)。
·为捕获当前值等于预置值这一事件,编程将相应的事件号( enent13)与一个中断程序相关联。
·为捕获计数方向改变这一事件,编一个中断程序并将它与中断事件14相关联。
·为捕获外部复位事件,编一个中断程序并将它与中断事件15相关联。
·执行全局开中断指令(ENI)来允许HSC1中断。
·执行HSC指令使S7-200编程HSC1。
·退出子程序。
3)模式6、7、8的初始化。下面为对HSC1的两相加/减计数且具有两个时钟输入端的初始化步骤(模式6、7、8)。
·利用SM0.1来调用一子程序,在此子程序中编写初始化程序。通过子程序调用,使其后的扫描周期不会再次调用此子程序,减少了扫描时间,且程序更具结构化。
·在初始化子程序中,根据需要向SMB47装入控制字节,如SMB47 =16#F8,意味着:允许计数,写入新的当前值,写入新的预置值,设置初始时为加计数,启动和复位信号高电平有效。
·执行HDEF指令,且采用下面的输人参数:HSC端为1。MODE端当无外部复位端和启动输入端时为6。当有外部复位端但无启动端时为7。当有外部复位端和启动端时为8。
·将希望的当前计数值装入SMD48(双字长)(装入0则可实现清除)。
·将希望的预置值装入SMD52(双字长)。
·为捕获当前值等于预置值这一事件,编程将相应的事件号( event13)与一个中断程序相关联。
·为捕获计数方向改变这一事件,编一个中断程序并将它与中断事件14相关联。
·为捕获外部复位事件,编一个中断程序并将它与中断事件15相关联。
·执行全局开中断指令(ENI)来允许HSC1中断。
·执行HSC指令使S7-200编程HSC1。
·退出子程序。
4)模式9、10、11的初始化。下面为对HSC1的A/B相正交计数模式的初始化步骤(模式9、10、11)。
·利用SMO.1来调用一子程序,在此子程序中编写初始化程序。通过子程序调用,使其后的扫描周期不会再次调用此子程序,减少了扫描时间,且程序更具结构化。
·在初始化子程序中,根据需要向SMB47装入控制字节。如在1×(1倍率)模式时,SMB47=16# FC,意味着:允许计数,写入新的当前值,写入新的预置值,设置初始时为加计数,启动和复位信号高电平有效。又如在4×(4倍率)模式时,SMB47=16# F8,意味着:允许计数,写入新的当前值,写入新的预置值,设置初始时为加计数,启动和复位信号高电平有效。
·执行HDEF指令,且采用下面的输人参数:HSC端为1。MODE端当无外部复位端和启动输入端时为9;当有外部复位端但无启动端时为10;当有外部复位端和启动端时为11。
·将希望的当前计数值装入SMD48(双字长)(装入0则可实现清除)。
·将希望的预置值装入SMD52(双字长)。
·为捕获当前值等于预置值这一事件,编程将相应的事件号( event13)与一个中断程序相关联。
·为捕获计数方向改变这一事件,编一个中断程序并将它与中断事件14相关联。
·为捕获外部复位事件,编一个中断程序并将它与中断事件15相关联。
·执行全局开中断指令(ENI)来允许HSC1中断。
·执行HSC指令使S7-200编程HSC1。
·退出子程序。
每个高速计数器有一个状态字节,其各个存储位用来显示当前的计数方向、当前值是否等于预置值、当前值是否大于预置值。表9. 68描述了各个高速计数器的这些状态位。
表9. 68 HSC0、HSC1和HSC2的状态位
HSC0 | HSC1 | HSC2 | 描 述 |
SM36.0 | SM46.0 | SM56.0 | 未用 |
SM36.1 | SM46.1 | SM56.1 | 未用 |
SM36.2 | SM46.2 | SM56.2 | 未用 |
SM36.3 | SM46.3 | SM56.3 | 未用 |
SM36.4 | SM46.4 | SM56.4 | 未用 |
SM36.5 | SM46.5 | SM56.5 | 当前计数方向状态位 0=减计数,1=加计数 |
SM36.6 | SM46.6 | SM56.6 | 当前值等于预置值状态位 0=不等,1=相等 |
SM36.7 | SM46.7 | SM56.7 | 当前值大于预置值状态位 0=小于或等于,1=大于 |
注意:HSC0、HSC1和HSC2的状态位,仅当高速计数中断程序执行时才有效。监视高速计数器的状态是为了使能那些会受当前执行指令影响的事件的中断能力。
每一高速计数器都有一个32bit的当前值和一个32bit的预置值,这两个值均为带符号的整数,必须通过其控制字和特殊存储字节来写入新的当前值或预置值,然后使用HSC指令将此新值送入高速计数器。表9.67描述了装载当前值和预置值的特殊存储字节。
表9. 67 HSC0、HSC1和HSC2的当前值和预置值
HSC0 | HSC1 | HSC2 | 描 述 |
SMD38 | SMD48 | SMD58 | 新32bit当前值 |
SMD42 | SMD52 | SMD62 | 新32bit预置值 |
除了控制字节和新的预置值、当前值外,还可使用HC的数据类型后跟计数器编号(0、1、2)来读取每个高速计数器的当前值。因此,当前值可读取,但要写入时必须使用HSC指令。
海南西门子S7-200SMARTPLC模块代理经销商