浔之漫智控技术(上海)有限公司
    关于我们
  • 企业文化 组织结构 分支公司 售后服务 技术支持
  • 黔南州西门子S7-400代理商
  • 黔南州西门子S7-400代理商
  • 黔南州西门子S7-400代理商

产品描述

品牌西门子

黔南州西门子S7-400代理商


MSP430的软硬件C延时程序设计

MSP430是超低功耗16位单片机,越来越受到电子工程师亲睐并得到广泛应用。因此,上海正伟就此解析MSP430的软硬件C延时程序设计,C程序直观,可读性好,易于移植和维护,已被很多单片机编程人员所采用。MSP430集成开发环境(如IAR Embedded Workbench和AQ430)都集成了C编译器和C语言级调试器C—SPY。但是C语言难以实现精确延时,这一直困扰着很多MSP430单片机程序员。笔者在实际项目开发过程中,遇到很多需要严格时序控制的接口器件,如单总线数字温度传感器DSl8820、实时时钟芯片PCF8563(需要用普通]/o模拟12C总线时序)、三线制数字电位器AD8402、CF卡(Compact Flash Card)等都需要μs级甚至纳ns级精确延时;而一些慢速设备只需要ms到s级的延时。为此,笔者提出了适合于不同延时级别需要的软件或硬件精确延时方法,并已实际应用,效果良好,大大缩短了开发周期。
   
    1 . 硬件延时,
   
      MSP430单片机系统程序多采用事件驱动机制,即在没有外部事件触发的情况下CPU休眠于低功耗模式中。当外部事件到来时,产生中断激活CPU,进入相应的中断服务程序(ISR)中。中断响应程序只完成两个任务,一是置位相应事件的标志,二是使MCU退出低功耗模式。主程序负责使MCU在低功耗模式和事件处理程序之间切换,即在主程序中设一个无限循环,系统初始化以后直接进入低功耗模式。MCU被唤醒后,判断各标志是否置位。如果是单一标志置位,那么MCU执行相应的事件处理程序,完成后转入低功耗模式;若是有多个标志同时置位,主程序按照事先排好的消息队列对它们依次判别并进行处理,所有事件处理完毕以后MCU休眠,系统进入低功耗状态(该消息队列的顺序是按照任务的重要性设定的优先级)。在这种前后台系统中,由于主程序是无限循环,就必须关闭,与其闲置,不如用其定时器的功能作硬件延时。使用MSP430单片机定时器实现任意时长精确延时,既满足了系统实时低功耗的要求,也弥补了使用无限循环延时的时间难确定和占用CPU时间长的缺点。通过下例,讲解在同一WDT ISR中完成不同时长延时的技巧。
    #pragma vector=WD_r_VECTOR
    interrupt void WDT_Delay(void){
    //中断服务程序
    if((DelayTime&Delay500ms)==Delay500ms){
    //判断需要500 ms延时的标志是否置位
    static unsigned int n250MS=O;
    n250MS++;
    if(n250MS==2){ //延时250ms×2=500ms
    n250MS=0; //清零计数器
    DelayTime&=~Delay500ms;//复位标志位
    WDTCTL=WDTHOLD+WDTPW;
    1El&=~WDTlE;//关闭定时器并禁止其中断
    }
    }
    if((DelayTime&Delay30s)==Delay30s){
    //判断需要的30 s延时标志是否置位
    static unsigned int nS=0;
    nS++;
    if(nS==30){ //延时1 s×30=30 s
    nS=0; //清零计数器
    DelayTime&=~Delay30s;//复位标志位
    WDTCTL=WDTHOLD+WDTPW;
    IEl&=~WDTlE; //关闭定时器并禁止其中断
    }
    }
    }
    如果任务1需要500 ms的延时,只需在需要延时处执行如下语句:
    WDTCTL=WDT_ADLY_250;
    IE┃ =WDTIE; //①
    DelayTime┃=Delay500ms //②
    while((DelayTime&Delay500ms)==Delay500ms); //③
    ①处是配置工作在定时器模式,WDT每隔250 ms产生一次中断请求。可以根据需要改变时钟节拍,在使用32768 Hz晶振作为时钟源时,可以产生1.9ms、16 ms、250 ms和1000 ms的延时基数。在头文件msp430xl4x.h中,将这4种翻转时间的WDT配置宏定义为:WDT_ADLY_1_9、WDT_ADLY_16、WDT_ADLY_250和WDT_ADLY_1000。如果用DCOCLK作为SMCLK的时钟源,WDT选择SMCLK=1 MHz为时钟源,这样可以有O.064 ms、0.5 ms、8 ms和32 ms延时基数可供使用。
    ②处设置一个标志位,方便WDT ISR判别并进入相应的延时分支。
    ③处一直判别DelayTime标志组中的Delay500ms位,如果处于置位状态,说明所需的延时未到,执行空操作,直到延时时间到,在WDTISR中将Delay500ms复位,跳出while()循环,执行下一条指令。
    同理,如果任务2需要30 s延时,通过WDTCTL=WDT_ADLY_1000激活WDT中断,每隔1 s进中断一次,在WDT ISR中判别标志发现是Delay30s置位而不是Delay500ms执行30 s延时程序分支。每中断一次,计数器nS加l,直到计到30,说明30 s延时完成,清零计数器,停止(WETCTL=WE)THOLD+WDTPW;)可停止产生中断,并复位该延时标志,以通知任务延时时间到,可以执行下面的指令了。
    在WDT ISR中可以根据延时基数和计数器的搭配实现任意长度的时间延时。在系统程序设计时,先确定所需的不同延时时间,然后在WDT。ISR中添加相应的延时分支即可。嵌入式实时操作系统μC/OS—II移植于MSP430单片机就是使用定时器产生时钟节拍的。
    对于系统比较简单,只需要单一时长的延时.而又要考虑系统功耗时,介绍另一种使用定时器中断完成延时的方法。若要延时1 s,则设定WDT每250 ms中断一次。在需要延时处,启动定时器并允许其中断,系统进入低功耗模式3(共有5种.模式)休眠。在中断服务程序中对延时时间累加,当达到1 s时唤醒CPU,并停止定时器中断。

202202231632193121774.jpg20220223163219203454.jpg

为防止感应雷进入系统,可采用浪涌吸收器。(3)做好信号屏蔽。信号的屏蔽非常关键,一般可采取屏蔽电缆传送模拟信号。注意对多个模拟信号共用一根多芯屏蔽电缆或用两种屏蔽电缆传送时,信号间一定要做好屏蔽。而且电缆的屏蔽层一端(一般在控制柜端)要可靠接地。(4)当现场没有或无法设置硬点时,可在操作界面上采取软按键的方法解决走向选择或控制方式选择等问题。此外,与变频器、智能仪表等的连接,好还是采用信号线直接相连的方式。(5)应合理配置PLC的使用环境,提高系统抗干扰能力。具体采取的措施有:远离高压柜、高频设备、动力屏以及高压线或大电流动力装置;通信电缆和模拟信号电缆尽量不与其他屏(盘)或设备共用电缆沟;


异步电机又分为鼠笼型电机和绕线型电机,其区别在于转子。鼠笼型电机转子由金属条制成,铜制或铝制。铝的价格比较低,我国又是铝矿大国,在要求不高的场合应用广泛。但铜的机械性能和导电性能都好于铝,就我所接触的绝大部分都是铜制转子。鼠笼型电机在工艺上解决了断排的问题后,可靠性远远超过绕组型转子的电机。而其缺点在于,金属转子在旋转的定子磁场中切割磁感线获得的转矩较小,且起动电流较大,对起动力矩要求较大的负载难以胜任。尽管增加电机铁心长度可以获得更多的转矩,但力度十分有限。绕线型电机在启动时通过滑环给转子绕组通电,形成转子磁场,与旋转的定子磁场相对运动,因此获得转矩更大。且在启动过程中串联水电阻来降低启动电流,水电阻由成熟的电控装置控制随启动过程改变阻值。适用于轧机、提升机等负载。由于绕线型异步电机相对鼠笼型电机增加了滑环、水电阻等,在整体设备价格上有一定提高。其与直流电机相比,调速范围较为狭窄且转矩相对较小,相应价值也低。
然而异步电机由于给定子绕组通电建立旋转磁场,而绕组属于电感性元件不做功,要从电网中吸收无功功率,对电网冲击很大。直观体验有大功率电感性电器接入电网时,电网电压下降,电灯亮度一下都降低。因此供电局对异步电动机的使用会有所限制,这也是很多工厂必须考虑的地方。部分用户如钢厂、铝厂等,选择建立自备电厂,形成自己的电网,以减免对异步电动机的使用限制。所以异步电动机如果要满足大功率负载使用,需配备无功功率补偿装置,而同步电动机则可通过励磁装置向电网提供无功功率,功率越大同步电动机的优势就越明显,由此产生了同步电动机的舞台。

其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算即输出。字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。如:图7编程元件示例程序图7所示程序中,WR0即为字元件。

的发展趋势之一就是Ethernet技术的扩展。PLC也例外,现在,越来越多的PLC供应商开始提供Ethernet接口部件。在近的几年间,我们已经看到,发展比现有普通小快灵PLC更加强大的PLC是种趋势。Ethernet将会成为PLC的通信标准吗?也许终结果是这样的,但现在还为时尚早。对于在PLC上提供Ethernet接口将能够解决所有通信问题,人们普遍存在着误解。Ethernet仅仅定义了OSI参考模型底部的几层协议标准,如果上层协议相互之间不能兼容,那么仍然不可能进行相互之间的通信处理。打个比方,这如同一个不懂英语的人与一个不懂汉语的美国人之间是不能够通过电话进行对话一样。因此,协议就是设备之间相互通信的语言另一方面。


接线方式性能好的PLC,这些模块种类多,性能也好。通讯模块,它接人PLC后,可使PLC与计算机,或PLC与PLC进行通讯,有的还可实现与其它控制部件,如变频器、温控器通讯,或组成局部网络。通讯模块代表PLC的组网能力,代表着当今PLC性能的重要方面。掌握PLC性能,一定要了解它的模块,并通过了解模块的性能,去弄清楚PLC的性能。除了模块,PLC还有外部设备。尽管用PLC实现对系统的控制可不用外部设备,配置好合适的模块就行了。然而,要对PLC编程,要PLC及其所控制的系统的工作状况,以及存储用户程序、打印数据等,就得使用PLC的外部设备。故一种PLC的性能如何,与这种PLC所具外部设备丰富与否,外部设备好用与否直接相关。


2)PPI通讯传输的是11位的数据,也就建议客户拨码选择8数据位1停止位偶校验(拨码默认为11位),并且PLC的波特率和PPI、组态王要一致;3)要求编程软件必须是离线时启动运行组态王。(五)西门子200PLC通过modbus协议与组态王通讯时,组态王中定义的寄存器地址与PLC地址是如何对应的?映射关系如下:0-Q,1-I,9-V;3,4,8,9的dd号与PLC中V寄存器的偏移地址(实际地址-1000)的对应关系:组态王中(寄存器的dd号-1)*2=PLC中的V寄存器的偏移地址。组态王中40031对应PLC:VW1060(组态王中寄存器4表示SHORT型变量)组态王中90640对应PLC:VD2278(组态王中寄存器9表示FLOAT型变量)西门子PLC代理商系统故障实例分析PLC系统故障实例分析PLC软故障实例一台停机一段时间的PLC控制系统上电后无法启动故障检查、处理:检修人员在检查后认为程序出错




http://www.absygs.com

产品推荐