注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- PLC论坛 -- PLC论坛(非专题) -- PLC编程

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

发表人:工控处男 发表时间:2005/6/13 16:20:00  

 

 本栏论题: 新论题:PLC中断程序专题(声明:必须举例讲解)  [18585]

    看过不少书,工控论坛里也讲了不少,还是看不懂,大道理一套一套的,就是没有一个实用的,希望各位工控大哥,你们都是过来人,帮帮小弟忙。最好举例说明,实用的例子。
    中断到底咋回事呀!

以下是关于《新论题:PLC中断程序专题(声明:必须举例讲解)》论题的回复(共25篇,分2页显示)

 共2页  第1页   末页   下一页   

回复人:我是笨鸟 

 回复时间:2006/1/23 12:24:00

支持(895) | 反对(1110)

 

    回复:很好的专题,怎么不活跃呀

    

回复人:姜波云 

 回复时间:2005/10/18 10:59:00

支持(979) | 反对(914)

 

    回复:中断理论

    调用中断
   
    ·中断
   
      中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。
   
      这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它内部原因。
   
      由外设控制器或协处理器(8087/80287)引起的中断一般称为外中断,由程序中安排的中断指令INT产生的中断,或由CPU的某些错误结果产生的中断称为内中断。
   
    ·中断向量表
   
      我们给每种中断安排一个中断类型号。IBM PC中断系统能处理256种类型的中断,类型号为0-0FFH。例如:系统定时器的中断类型为08,键盘为09,内中断中的除法错误的中断类型为0,等等。
   
      每种类型的中断都由相应的中断处理程序来处理,中断向量表就是各中断类型的处理程序的地址表。
   
      存储器的低1.5K字节,地址从0到5FFH为系统占用,其中最低的1K字节,地址从0到3FFH存放中断向量。中断向量表中的256项中断向量对应256种中断类型,每项占用四个字节,其中两个字节存放中断处理程序的段地址,另两个字节存放偏移地址。
   
    ·调用中断
   
      调用中断需要使用汇编指令INT n(n为中断类型)。
   
      如:
   
    asm
     int 23H
    end;
   
   
      这段代码可以模拟按下Ctrl+Break键,结束程序运行。
   
      又如:
   
    asm
     int 19H
    end;
   
      这段代码可以重启系统(Windows MS-DOS 方式下可以关闭窗口)。
   
    内部扬声器
   
    ·内部扬声器
   
      内部扬声器是计算机内置的一种简单发声设备,原本是为BIOS(基本输入输出系统)设计的,用于发生异常或其它情况时的报警发声,后来被DOS游戏和软件广泛用于音乐的播放。
   
    ·通用发声程序
   
      ROM BIOS中有个BEEP子程序,它能根据BL中给出的时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒,频率为896Hz的声音。它的用途是当“加电自测”系统发现硬件错误后,由ERROR_BEEP处理程序调用BEEP子程序,使扬声器发出“嘟嘟”的信号。BL中的时间计数值由 ERROR_BEEP程序设置为533H,BEEP子程序将此计数值送给8254的定时器2来产生896Hz的声音,然后BEEP又将AL的第0位和第1 位置1,并把AL的值送到8255的输出寄存器(I/O端口61H),使扬声器接通发出声音。
   
      由此,可以得出产生任一频率声音的计数值应为:533H×896÷给定频率=1192576÷给定频率。
   
      发声和关闭扬声器的程序如下:
   
    procedure MakeSound(Freq:Word);
    begin
     if Freq<19 then CloseSound
     else
     begin
      Port[66]:=1192576 div Freq and 255;
      Port[66]:=1192576 div Freq shr 8;
      Port[97]:=Port[97] or 3;
     end;
    end;
    procedure CloseSound;
    begin
     Port[97]:=Port[97] and 252;
    end;
   
    ·播放音乐
   
      播放音乐的核心在于获得各个音符的频率。按照乐理基本知识,每八度为一音程,每一音程中共有12个不同的音调,即1,#1,2,·2,3,4,#4, 5,#5,6,#6,7。中央C调的1其频率为261.6Hz。每升高一个音程,频率为原先的两倍。在同一音程中,每升高一个音调,频率为原先的2^ (1/12)倍。根据这一原理,若选定一个基本音频,比如音程0音调1的频率为32.7Hz,则给定某一音程及音调的数值,即可算得该音的频率值。
   
    procedure PlayNote(Octave,Tone:Integer);{Octive:音程,0..6;Tone:音调,1..12}
    begin
     MakeSound(Round(32.7*Exp(Ln(2)*(Octive+(Tone-1)/12))));
    end;
    设置光标位置
   
    ·设置光标位置
   
      要设置光标位置,可以调用BIOS中断10H:
    中断号 AH 功能 调用参数
    10H 2H 设置光标位置 BH=页号 DH,DL=行,列
      例如(设置为0行0列):
   
    asm
     mov ah,2H
     mov bh,0
     mov dh,0
     mov dl,0
     int 10H
    end;
    ·获取光标位置
   
    中断号 AH 功能 调用参数 返回参数
    10H 3H 获取当前光标位置 BH=页号 CH=光标起始行DH,DL=行,列
    例如:
   
    var
     Row,Col:Byte;
    asm
     mov ah,3H
     mov bh,0
     int 10H
     mov Row,dh
     mov Col,dl
    end;
   
    设置显示模式
   
    ·设置显示模式
   
      要设置显示模式,可以调用BIOS中断10H:
    中断号 AH 功能 调用参数
    10H 0H 设置显示模式 AL=显示模式号
      例如(设置为640*480 16 Colors):
    asm
     mov ah,0
     mov al,12H
     int 10H
    end;
    ·获取显示模式
    中断号 AH 功能 调用参数 返回参数
    10H FH 获取当前显示模式 AL=显示模式号
   
   
    例如:
   
    var
     Mode:Byte;
    asm
     mov ah,FH
     int 10H
     mov Mode,al
    end;
   
    ·显示模式表
   
      标准VGA显示模式表:
   
    显示模式 文本/图形 分辨率 颜色数
    00H 文本 40*25 2
    01H 文本 40*25 16
    02H 文本 80*25 2
    03H 文本 80*25 16
    04H 图形 320*200 4
    05H 图形 320*200 4
    06H 图形 640*200 2
    0DH 图形 320*200 16
    0EH 图形 640*200 16
    0FH 图形 640*350 2
    10H 图形 640*350 16
    11H 图

回复人:kafang 

 回复时间:2005/9/10 17:56:00

支持(1026) | 反对(1251)

 

    回复:这个主题很好呀,怎么不踊跃呢?

    不要保守吗,相互学习

回复人:xiamy 

 回复时间:2005/6/14 15:06:00

支持(1042) | 反对(1313)

 

    回复:要是了解中断,需要一下几个方面

    1、什么叫中断
    2、中断的实际作用
    3、中断的种类
    4、中断指令的组成
    5、中断的实际运用
   
    过几天,我会一一答复,现在上班,不方便。
   

回复人:工控处男 

 回复时间:2005/7/13 7:57:00

支持(1158) | 反对(962)

 

    回复:你好

    你好

回复人:工控处男 

 回复时间:2005/6/14 17:23:00

支持(1031) | 反对(980)

 

    回复:能用最简单的程序范例讲解一下中断的过程吗?

    

回复人:jiaju 

 回复时间:2005/6/15 13:26:00

支持(843) | 反对(973)

 

    回复:最简单的:比如,故障报警,就可以用两个事件中断实现

    1、中断事件:故障输入点,占用PLC输入点。中断事件其实是两个:输入电闭合(故障);输入点断开(故障解除)
    2、中断程序:中断程序需要两个,报警(输出置位),停止报警(输出复位)。
    3、建立中断事件和中断程序的对应关系。
    中断事件1(故障)——中断程序1(报警,输出置位)
    中断事件2(故障解除)——中断程序2(报警,输出复位)
   
   
    这个例子,可能在程序中,很少采用中断方式,但他的确是非常简单的中断事例,很好理解中断的意义。

回复人:有机物 

 回复时间:2005/6/13 20:49:00

支持(1592) | 反对(969)

 

    回复:我的理解:

    1、中断事件
    2、中断程序
    3、建立中断事件和中断程序的连接
    4、中断功能的控制:包括:中断功能投入运行(开中断),中断功能停止(停中断)
   
    简单事例:
    1、两个中断事件,PLC输入点1、2
    2、两个中断程序:中断程序1,中断程序2。
    3、建立联系,中断事件1对应中断程序1,中断事件2对应中断程序2,这一点非常重要,否则处乱了。
    4、允许中断功能运行等等。
   
   
   
   

回复人:死亡骑士2000 

 回复时间:2007/5/3 15:52:00

支持(888) | 反对(967)

 

    学习中

回复人:镜花缘嘉峪 

 回复时间:2007/6/22 14:08:00

支持(759) | 反对(1013)

 

    看的头晕ing

回复人:mzy1212 

 回复时间:2007/6/23 12:11:00

支持(1394) | 反对(780)

 

    还是不怎么明白...
    请高手推荐一些这方面的书籍或者资料,自回去慢慢学习,消化...
    学无止境....

回复人:ccgcygjjy 

 回复时间:2007/6/26 22:52:00

支持(1233) | 反对(869)

 

    我也是个刚入门的,jiaju说的我是这样理解的,不知道对不?假如用一个自锁开关连接成一个通路,当开关按下后则线路导通,在导通期间如果开关坏掉了,就不再导通了,是不是属于中断呢?哪位明白的帮解答一下,谢谢.

回复人:wlfei1994 

 回复时间:2007/10/6 17:10:00

支持(735) | 反对(848)

 

    中断在程序中优先运行,常用在急停,定时运行等.
   

回复人:xj2007 

 回复时间:2008/1/11 11:02:00

支持(785) | 反对(861)

 

    学习中

回复人:yss020 

 回复时间:2009/8/30 19:55:00

支持(862) | 反对(780)

 

    看的晕呼呼的

 共2页  第1页   末页   页次: 1  2      下一页  

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳