马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 ![](source/plugin/zhanmishu_wechat/template/static/img/wechat_login.png)
x
已知,M100为HMI屏幕上按键,若M100按位时间为t ms,扫描周期为A ms,t/A能整除,原来寄存器中的初始值为0,求D100、D110、D120、D130中的数据为多少,梯形图如图1所示。 图1 梯形图 本题包括了位器件的四种触发方式,常开触点,常闭触点,上升沿触发,下降沿触发。另外,本问题的求解需要充分了解PLC的数据范围, 周期性执行方式,扫描周期等概念。PLC数据位有16位和32位两类,对于16位无符号类型的数据,数据范围为0~2^16-1,有符号型的,数据范围为-2^15~2^15-1,;对于32位无符号类型的数据,数据范围为 0~2^32-1,对于32位有符号类型的数据,数据范围为 -2^31~2^31-1。PLC的程序执行方式为从上至下依次执行,当执行到程序最后一行时,返回程序第一行,再次自上而下执行,依次循环;扫描周期指程序循环一次所用的时间。 针对于本问题,作如下分析: 1.对于D100,自加指令在M100闭合的时候执行,闭合的时间为t ms,扫描周期为A ms,自加指令执行的次数为t/A;INC为16位自加指令,数据范围为-32768~32767,当自加到边界值32767时,再执行数据变为-32768,如此循环。DINC为32位自加指令。 设n为D100数据溢出的次数。 推理: t/A∈[0 32767],D100= t/A,n=0; 当t/A=32768,D100= -32768=t/A-2^16,n=1; 当D100从-32768增加到32767时,t/A从32768增加至32768+2^16-1,n=1; 当t/A=32768+2^16时,D100= -32768= t/A-2×2^16,n=2; 当t/A=32768+2^16+2^16,D100= -32768= t/A-3×2^16,n=3; 故可得出以下公式: 其中,DINT表示32位取整函数,其中n∈[0 232-1]。取整的方式为向前取整,及通过舍去小数部分的方式取整。则D100中的数据为: 2.对于D110,自加指令在M100断开的时候执行,由于M100断开的时间未知,故不能求出D110中的数据;
3.对于D120,自加指令只在上升沿触发,M100按下瞬间存在上升沿,故只执行一次,D120=1;
4.对于D130,自加指令只在下降沿沿触发,M100松开瞬间存在下降沿,故只执行一次,D130=1。
|