西门子SM1221数字量输入模块6ES7221-1BF32-0xB0
工作模式
高速计数器的初始化步骤举例
以下以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7--200已经置成RUN模式。因此,首次扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速计数器的HDEF指令只能执行一次。对一个高速计数器第二次执行HDEF指令会引起运行错误,而且不能改变第次执行HDEF指令时对计数器的设置。PS:虽然下列步骤描述了如何分别改变计数方向、初始值和预置值,但完全可以在同一操作步骤中对全部或者任意参数组合进行设置,只要设置正确的SMB47然后执行HSC指令即可。
初始化模式0、1或2
HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:
1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:
SMB47=16#F8 产生如下的结果:
允许计数
写入新的初始值
写入新的预置值
置计数方向为增
置启动和复位输入为高电平有效
3. 执行HDEF指令时,HSC输入置1,MODE输入置0(无外部复位或启动)或置1(有外部复位和无启动)或置2(有外部复位和启动)。
4. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
5. 向SMD52(双字)写入所希望的预置值。
6. 为了捕获当前值(CV)等于预置值(PV)中断事件,编写中断子程序,并指定CV=PV中断事件(事件号13)调用该中断子程序。
7. 为了捕获外部复位事件,编写中断子程序,并指定外部复位中断事件(事件号15)调用该中断子程序。
8. 执行全局中断允许指令(ENI)来允许HSC1中断。
9. 执行HSC指令,使S7--200对HSC1编程。
10. 退出子程序。
应用实例
实例应用2
在首次扫描时,调用SBR0,在首次扫描,配置HSC1:SMB48=16#F8意思就是使能计数器、写初始值、写预置值、设初始方向为增计数、选择启动和复位输入高电平有效、选择4倍速模式、配置HSC1为带启动和复位输入的正交模式、SMD48=0表示清除HSC1的初始值。置HSC1的预置值为50。 当HSC1的当前值=预置值时,执行INT_0。 全局中断允许。执行HSC1,执行HSC1,清除HSC1的初始值、选择写入新的初始值和HSC1使能。