PLC 以 其 可靠性高、抗干扰能力强、配套齐全、功能完善、适应性强等特点,广泛应用于各种控制领域。PLC作为通用工业控制计算机,是面向工矿企业的工控设备,使用梯形图符号进行编程,与继电器电路相当接近,被广大工程技术人员接受。但是在实际应用中,如何编程能够提高PLC程序运行速度是一个值得我们思考研究的问题。1 PLC工作原理PLC 与 计 算机的工作原理基本相同,即在系统程序的管理下,通过运行应用程序完成用户任务。但两者的工作方式有所不同。计算机一般采用等待命令的工作方式,而PLC在确定了工作任务并装人了专用程序后成为一种专用机,它采用循环扫描工作方式,系统工作任务管理及应用程序执行都是用循环扫描方式完成的。PLC 有 两 种基本的工作状态,即运行(RUN)与停止(STOP)状态。在这两种状态下,PLC的扫描过程及所要完成的任务是不尽相同的,如图1所示。 PLC在RUN工作状态时,执行一次扫描操作所的时间称为扫描周期,其典型值通常为1一100nis,不同PLC厂家的产品则略有不同。扫描周期由内部处理时间、输A/ 输出处理执行时间、指令执行时间等三部分组成。通常在一个扫描过程中,执行指令的时间占了绝大部分,而执行指令的时间与用户程序的长短有关。用户 程 序 是根据控制要求由用户编制,由许多条PLC指令所组成。不同的指令所对应的程序步不同,以三菱FX2N系列的PLC为例,PLC对每一个程序步操作处理时间为:基本指令占0.741s/步,功能指令占几百微米/步。完成一个控制任务可以有多种编制程序的方法,因此,选择合理、巧妙的编程方法既可以大大提高程序运行速度,又可以保证可靠性。 提高PLC程序运行速度的几种编程方法2.1 用数据传送给位元件组合的方法来控制输出在 PL C应 用编程中,最后都会有一段输出控制程序,一般都是用逻辑取及输出指令来编写,如图2所示。在图2所示的程序中,逻辑取的程序步为1,输出的程序步为2,执行上述程序共需3个程序步。通常情况下,PLC要控制的输出都不会是少量的,比如,有8个输出,在条件满足时要同时输出。此时,执行图2所示的程序共需17个程序步。若我们通过位元件的组合并采用数据传送的方法来完成图2所示的程序,就会大大减少程序步骤。在三 菱 PLC中,只处理ON/OFF状态的元件(如X,Y,M和S),称为位元件。但将位元件组合起来也可以处理数据。位元件组合由Kn加首元件号来表示。位元件每4bit为一组组合成单元。如KYO中的n是组数,当n=1时,K,Yo 对应的是Y3一Yo。当n二2时,KZYo对应的是Y7一Yo。通过位元件组合,就可以用处理数据的方式来处理位元件,图2程序所示的功能可用图3所示的传送数据的方式来完成。
上传时间: 2013-11-11
上传用户:几何公差
I2C总线高频头控制程序(Keil C51程序 基于芯片TSA5522系列) /*I2C总线高频头控制Keil C51程序(PLL芯片为TSA5522系列) *///--------------------------------------------------------------------------//// 源程序大公开 //// (c) Copyright 2001-2003 xuwenjun //// All Rights Reserved //// V1.00 ////--------------------------------------------------------------------------////标 题: I2C总线高频头控制程序(PLL芯片为TSA5522系列) ////文件名: xwj_fi1256.c ////版 本: V1.00 ////修改人: 徐文军 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 首次公开 ////描 述: I2C总线高频头控制程序(PLL芯片为TSA5522系列) ////声 明: //// 以下代码仅免费提供给学习用途,但引用或修改后必须在文件中声明出处. //// 如用于商业用途请与作者联系. E-mail:xuwenjun@21cn.com //// 有问题请mailto xuwenjun@21cn.com 欢迎与我交流! ////--------------------------------------------------------------------------////老版本: 无 老版本文件名: ////创建人: 徐文军 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 ////描 述: ////--------------------------------------------------------------------------// /* 频率单位为KHz */#define FUENCY 38900 /* 中频频率 */#define PLLdataH(f) ((f+FUENCY)*16/1000/256) /* 频率数据高 第1字节*/#define PLLdataL(f) ((f+FUENCY)*16/1000%256) /* 频率数据低 第2字节*/#define PLLCON1 0x8e /* 控制字1 第3字节*/ /* 控制字2 第4字节*/#define PLLCON2(f) (((f)<(168000))?(0xa0):(((f)<(450000))?(0x90):(0x30)))#define PLLdata3(fchan) PLLdataH (fchan),PLLdataL (fchan),PLLCON2 (fchan)
上传时间: 2013-11-10
上传用户:nanfeicui
一共有9个51单片机实验程序,实际上还有相关的汇编程序N例,单片机嵌入式程序和I2C源程序等等。
上传时间: 2014-03-18
上传用户:13517191407
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 程序源代码 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳转到主程序的开始处 ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址
上传时间: 2013-12-21
上传用户:1234321@q
这两个RAR文件是我学习51单片机时,第一次写的"外部中断实验程序", 包含内容有: 1. EXT_C.rar, 给初学者(带中文注释的C51语言例程), 利用外部中断实现LED灯的简单控制。2. EXT_A.rar, 给初学者(带中文注释的51汇编语言例程), 利用外部中断实现LED灯的简单控制。 两个同样功能的中断例程, 一个用C51实现, 另一个用ASM51实现(ASM51是由C51反汇编生成的),都在MCU51-63K仿真器下通过实验的哦, 小虾们可以试试看。
上传时间: 2013-11-25
上传用户:hahayou
1 /**————————————————————2 〖说明〗I2C总线驱动程序(用两个普通IO模拟I2C总线)3 包括100Khz(T=10us)的标准模式(慢速模式)选择,4 和400Khz(T=2.5us)的快速模式选择,5 默认11.0592Mhz的晶振。6 〖文件〗PCF8563T.C ﹫2001/11/2 77 〖作者〗龙啸九天 c51@yeah.net http://www.c51bbs.co /8 〖修改〗修改建议请到论坛公布 http://www.c51bbs.co m9 〖版本〗V1.00A Build 080310 —————————————————————*/1112 #ifndef SDA13 #define SDA P0_014 #define SCL P0_115 #endif1617 extern uchar SystemError;1819 #define uchar unsigned char20 #define uint unsigned int21 #define Byte unsigned char22 #define Word unsigned int23 #define bool bit24 #define true 125 #define false 02627 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();2829 /**--------------------------------------------------------------------------------30 调用方式:void I2CStart(void) ﹫2001/07/0 431 函数说明:私有函数,I2C专用32 ---------------------------------------------------------------------------------*/33 void I2CStart(void)34 {35 EA=0;36 SDA=1; SCL=1; SomeNOP();//INI37 SDA=0; SomeNOP(); //START38 SCL=0;39 }4041 /**--------------------------------------------------------------------------------42 调用方式:void I2CStop(void) ﹫2001/07/0 443 函数说明:私有函数,I2C专用44 ---------------------------------------------------------------------------------*/45 void I2CStop(void)46 {47 SCL=0; SDA=0; SomeNOP(); //INI48 SCL=1; SomeNOP(); SDA=1; //STOP49 EA=1;50 }5152 /**--------------------------------------------------------------------------------53 调用方式:bit I2CAck(void) ﹫2001/07/0 454 函数说明:私有函数,I2C专用,等待从器件接收方的应答55 ---------------------------------------------------------------------------------*/56 bool WaitAck(void)57 {58 uchar errtime=255;//因故障接收方无ACK,超时值为255。59 SDA=1;SomeNOP();60 SCL=1;SomeNOP();61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}62 SCL=0;63 return true;
上传时间: 2014-04-11
上传用户:xg262122
单片机万年历设计(含程序和原理图以及PCB文件),尽供学习哦。
上传时间: 2013-12-18
上传用户:familiarsmile
实现动态显示效果的方法和以上几种基本类似,这里以滚动显示为例作一说明。对于需要滚动的文字,可以将其设置为位图格式,暂存于内存中,然后利用VC 提供的位图拷贝函数BitBlt将位图复制到显示位置。对于特殊字符或图形,则可以直接利用BitBlt函数调用到显示位置。然后在类CLEDDlg的 OnTimer函数中调用该函数,以实现文字的滚动显示。另外,也可以通过设定不同的响应时间间隔来改变文字的滚动速度。 程序清单: ORG 00H LOOP: MOV A,#0FFH ;开机初始化,清除画面 MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延时100毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,#00H ;取码指针的初值 l100: MOV R1,#100 ;每个字的停留时间 L16: MOV R6,#16 ;每个字16个码
上传时间: 2013-11-06
上传用户:zl520l
24cxx读写程序软件-中文版 版本:V1.1.0.20916增加功能:用户可以设置并口地址 可以编辑Client区内容 修改了Client区界面 简体中文,英文双语界面 详见安装好后的Readme.pdf-----------------------------------说明:W24CXX.EXE为Windwos下使用计算机并口读写24系列I2C EEPROM的小软件开发工具:Borland C++ Builder 6.0 WinDriver 5.05b开发环境:Windows 2K Profressional SP3运行环境:Windows98/NT/2K/XP-----------------------------------程序开发:林晓斌(SONICSS)EMAIL: SONICSS@CNUNINET.COM注:若您使用Win98系统,必须重新启动计算机
上传时间: 2013-11-10
上传用户:wxnumen
主要功能:1、将串口通讯协议存储为一个通讯文件,可是随时将存储通讯协议文件调入计算机运行与下位机通讯可以实现通讯对话,供下位机工程师参考使用,其主要的通讯协议本程序把它们分成四种情况。以下说明:1)下位机直接发送数据,上位机只接收不回应数据。2)下位机直接发送数据,上位机接收并回应数据。3)上位机直接发送数据,下位机只接收不回应数据。4)上位机直接发送数据,下位机接收并回应数据。下位机工程师完全可以利用这个功能单独的并且很方便的调试与上位机通讯程序,更改双方的通讯协议,不再需要上位机工程师的配合。windwos标准操作,使用方便。2、可以监听活动串口的数据,将监听到的数据显示到数据显示区里面,可以保存。也可以将原先保存的文件数据读进来,以供分析。数据可以按照十六进制和ascii码显示出来。3、自动识别串口设置,当不知道对方设备的通讯串口设置时,可以利用该功能让此程序自动识别,当然前提是对方设备必须是一直在发数据,整个识别过程大概需要二分钟。4、可以通过该程序,利用串口将文件发送到另一个计算机上。另一个计算机通过接收文件接收所发出的文件。
上传时间: 2013-11-11
上传用户:semi1981