西门子6ES7223-1BH22-0XA8代理订购
西门子6ES7223-1BH22-0XA8代理订购
针对大量开关量信号输入的问题,以日本三菱公司的fx系列plc为例,本文设计了一种基于组扫描输入的plc开关量采集方法,借助于输入接口板,可以实现多个开关输入信号接入plc单个输入点,使用这种方法,对输入点数较多的控制系统,可以节省plc的输入点数,提高plc的信息采集效率效率,对降低控制系统成本具有重要意义。
1 引 言
plc是近四十年发展起来的现代工业控制技术,由于它把计算机的编程灵活、功能齐全、应用面广等优点和继电器系统的控制简单、使用方便、抗干扰能力强、价格便宜等优点结合起来,并且其本身具有体积小、功耗低、性能稳定等特点,因而在工业生产过程控制中的得到了广泛应用,被称为现代工业自动化的三大支柱(plc、 数控技术、工业机器人)之一。
对于输入输出点数比较少的系统可以不需要接口扩展;当点数较多时,需要进行输入输出扩展。不同公司的plc产品,对系统总点数及扩展模块数量都有限制,当扩展仍不能满足需要时,就不得不使用网络结构,这既增加了系统的复杂度,也提高了系统成本。
针对大量开关量信号输入的问题,以日本三菱公司的fx系列plc为例,本文设计了一种基于组扫描输入的plc开关量采集方法,借助于输入接口板,可以实现多个开关输入信号接入plc单个输入点,使用这种方法,对输入点数较多的控制系统,可以节省plc的输入点数,提高plc的信息采集效率效率,对降低控制系统成本具有重要意义。
2 硬件设计
对于工业现场中经常会用到的开关、按钮等开关量信号,通常按照图1的配线方法接入plc的输入点,该方法以com端作为所有开关量输入信号的公共端,每一个开关或按钮接入一个plc的输入点。
图1 常用开关量信号接入方法
为解决大量开关量信号输入问题,利用信号扫描原理,设计了一种基于组扫描输入的plc开关量输入采集方法,硬件结构如图2所示。图中以16个开关量输入信号为例,这16个开关量输入信号被分为4组,分别接入四块接口板(每块接口板可接入4路信号,通过二极管输出)。通过接口板后,k1、k5、k9、k13均接入plc的x1输入端,依此类推,k2、k6、k10、k14均接入plc的x2输入端,k3、k7、k11、k15均接入plc的x3输入端,k4、k8、k12、k16均接入plc的x4输入端,16个开关量输入信号只占用了plc的4个输入端。
4块接口板分别由plc的4个输出y1~y4选通(用虚线画出),如当y1有效而y2~y4均无效时,接口板i被选通,此时k1~k4的信号被送入x1~x4,当y2有效而y1、y3、y4无效时,k5~k8的信号被送入x1~x4,另外两组信号的送入方法相同。在这种结构中,输出端y代替com作为公共端。
这样每个周期扫描4次,可分4次将16个信号送到plc的输入端,每次扫描过后在程序中将x1~x4的状态转移到其他位置。16个输入信号仅占用了4个输入端和4个输出端,节省了一半的plc输入输出点数,在实际使用中还可以根据需要进行灵活扩展,获得更高的使用效率。如若每块接口板上接8个开关量输入信号,4块板共接入32个输入信号,共占用plc的8个输入端,输出端仍然是4个。
设计时要注意接口板中二极管的选择,一定要选择质量高、稳定性好的二极管,如果出现二极管损坏或击穿的情况,将会出现输入信号不能被正确送入plc输入端或出现输入紊乱。另外输入信号的组数不宜过多,图2中是4组,若每次扫描时间间隔为100ms,则4次扫描的扫描周期是400ms,输入信号的延迟大可能达到400ms,若组数过多(如超过10组),会出现信号延迟导致系统的灵敏度下降。
图2 基于组扫描的plc开关量输入采集硬件结构
图3 软件流程图
3 软件设计
在软件设计中要考虑两个主要的问题。一是要定时输出单个扫描选通信号,用来选通相应的接口板,二是要及时将扫描进来的数据转移到其他位置。在这种plc输入设计方法中,在每个扫描周期,每组开关量信号中的一个依次送入一个plc输入端,这样就必须在下次扫描数据来临前将上一次扫描进来的开关量信号状态转移到其他位置保存。
图3为软件流程图,基于上述考虑设计的软件程序(梯形图)如图4所示。每次扫描时间间隔100ms,16个开关量信息采集到plc后分别送入m100~m115保存,指令rol和ref的含义分别是循环左移和输出刷新。
图4 支持多点扫描输入的plc输入软件实现
4 结束语
本文设计的一种基于组扫描输入的plc开关量采集方法,利用信号扫描原理,能有效解决工业现场中存在的大量开关量信号输入问题,该方法可以大大减少plc的输入点数,降低控制系统设计成本,系统结构稳定,扩展性、灵活性好,具有一定的使用价值和推广意义
概述: 在很多应用场合中,需要用到语音录放功能,如复读机、电话自动应答装置等。本文介绍一种简单实用的dsPIc数字信号控制器,用来完成语音录放功能。由于dsPIC强大的数字信号处理功能,可以提供后续的复杂处理等,具有良好的易扩展性。
介绍dsPIc数字信号控制器以厦ISD4002语音芯片的功能特点;特别介绍dsPIC的SPl库函数的功能及使用,并给出一种简单的语音录放电路。具有低成本、易使用等特点,有较高的实用价值。
1 dsPlC系列的简单介绍
dsPIC系列是Microchip公司推出的新型16位高性能数字信号控制器。它结合了单片机的控制优点及数字信号处理器(DSP)的高速运算特性,为嵌入式系统提供了单一芯片解决方案。它继承了PlC单片机系列的哈佛总线结构和精简指令集(RISC)技术,以及寻址方式简单、运行速度快、功耗低、驱动能力强等优点,同时集成了主板级的DSP功能,能够提供强大的数字信号处理能力;此外,还提供了如UART、CAN、SPI等丰富的外围接口,可以方便地与其他设备进行通信互联。本文介绍使用dsPIC数字信号控制器的SPI接口与ISD语音芯片进行通信控制,使用的芯片型号为dsPIc30F6014。
2 ISD系列语音录放芯片
ISD系列语音芯片是美国ISD公司推出的产品。该系列芯片采用多电平直接模拟存储(Chip Corder)专利技术,声音不需要A/D转换和压缩,每个采样直接存储在片内的闪烁存储器中,避免了A/D转换的误差;能够真实、自然地还原语音、音乐及效果声;避免了一般固体录音电路量化和压缩造成的量化噪声和金属声。ISD4000系列采用CM0s技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,只需要很少的外围器件即可构成一个完整的语音录放系统。它的操作命令通过串行通信接口(SPI)或Microwire送入;采样频率可为4.O Hz、5.3 Hz、6.4 Hz、8.O Hz,频率越低,录放时间越长,但音质会有所下降;片内信息存于闪烁存储器中,可在断电情况下保存100年(典型值),反复录音10万次;器件工作电压3 v,工作电流25~30 mA,音质好,适用于移动电话及其他便携式电子产品。本设计使用的芯片型号为ISD4002,单片录放时间为120 s。
3 SPI接口介绍
SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。SPI有4个引脚:SS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SCK(同步串行时钟线)。SPI可以用全双工通信方式同时发送和接收8(16)位数据,过程如下:主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移人到主移位寄存器中。8(16)个时钟脉冲过后,时钟停顿,主移位寄存器中的8(16)位数据全部移人到从移位寄存器中,随即又被自动装入从接收缓冲器中,从机接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接收缓冲器中.主接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。主CPU检测到主接收缓冲器的满标志位或者中断标志位置1后,就可以读取接收缓冲器中的数据。同样,从CPU检测到从接收缓冲器满标志位或中断标志位置1后,就可以读取接收缓冲器中的数据,这样就完成了一次相互通信过程。这里设置dsPIC30F6014为主控制器,ISD4002为从器件,通过SPI口完成通信控制的过程。
4 dsPIC的SPI函数库
dsPIC30F6014提供了2个SPI接口模块,每个接口模块包括三个特殊功能寄存器和四个引脚。SPIxBUF是数据缓冲寄存器。需要注意的是,接收缓冲SPIxRBF和发送缓冲SPIxTBF共享同一个地址,即它们都是地址映射到SPIxBUF的。也就是说,当对接收或发送缓冲寄存器操作时,都只能对SPIxBUF进行操作,而不能直接对SPIxRBF或SPIxTBF进行操作。SPIxCON是控制寄存器,用来对sPI模块的操作模式等进行配置;SPIxSTAT是状态寄存器,用来标示SPI模块所处的状态。其模块框图如图1所示。
通过对控制寄存器的配置,可以将SPI模块设置为8位或16位模式、主模式或从模式、帧同步等多种操作模式,还可以对时钟边沿、时钟分频倍数等进行配置。这里使用了以dsPIC为主,ISD为从的主从模式。Microchip提供的外围接口库可以方便地完成这些配置工作。
dsPIC Language Tools Libraries是MictoChip公司提供给开发者的一套工具库,其中主要含3个子库.DSP库,提供常用的DSP函数;外围接口库,提供对dsPIC系列所有外围接口的驱动函数,包括SPI接口;标准C及数学函数库,可在Microchip的guanfangwangzhan下载(www.microchip. com)。我们使用其中的外围接口库中的SPI库函数即可。SPI库中主要包括以下几个函数:
①configIntSPIx SPI中断配置函数。该函数可以对sPI接口的中断使能位以及中断优先级进行配置,返回值为空。
②CloseSPlx关闭SPI接口。
③DataRdySPlx SPl接口数据就绪。该函数用来判断SPI接收缓冲区中是否有数据等待读出。若返回值为1,表示缓冲区中数据已经就绪,等待读出;若返回值为0,则标示缓冲区为空。
④ReadSPIx读SPI接口缓冲区。
⑤WriteSPIx向SPI接口发送缓冲区写数据。
⑥OpenSPIx打开SPI接口。该函数包含2个参数:configl和config2。configl中包含对SPI接口操作模式的配置信息,将写入控制寄存器;config2中包含SPI的状态信息,将写入状态寄存器。该函数在打开SPI接口的同时完成对其的配置。
⑦puasSPIx函数将一个字符串数据写入到发送缓冲区中。
⑧getsSPIx函数将从接收缓冲区读人指定长度的字符串数据,并转存到指定的空间。
除了这8个函数以外,该库还提供了相应的宏指令完成同样的功能,可以在程序中方便地使用。
5 lSD4002
ISD4002工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。对ISD4002而言,在时钟上升沿锁存MOSI引脚数据.存下降沿将数据送至MISO引脚.协议具体内容如下:
①所有串行数据传输开始于SS下降沿;
②SS在传输期间必须保持为低电平,在两条指令之间保持为高电平;
③数据在时钟上升沿移入,在下降沿移出;
④SS变低,输入指令和地址之后,ISD才会开始录放动作;
⑤指令格式是10位地址码加6位控制码;
⑥ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断,该中断状态在下一个SPI周期开始时被清除;
⑦使用读指令会使中断状态为移出ISD的MISO引脚时,控制及地址数据也同步从MOSI移入;
⑧所有操作在运行位(RUN)置1时开始,置0时结束;
⑨所有指令都在SS上升沿开始执行。
其时序如图2所示。
对于ISD4002,器件延时TPUD(8kHz采样时,约为25 ms)后才能开始操作;因此,用户发完上电指令后,必须等待TPUD.才能发出一条操作指令。下面是典型的操作。
从00处发音,应遵循如下时序:
发POWERUP命令;
等待TPUD(上电延时);
发地址值为00的SFTPLAY命令;
发PLAY命令。
器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。
如果从00处录音,则按以下时序;
发POWER UP命令;
等待TPUD(上电延时);
发POWER UP命令
等待2倍TPUD;
发地址值为00的SETREC命令;
发REC命令。
器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。其工作时序如图3所示。
6 电路设计
本电路采用dsPICC30F6014数字信号控制器,通过3个按键开关控制ISD4002录放音芯片的动作。S1、S2、S3分别接到控制器外部中断INTl、INT2、INT3上。当按下S1时,开始录音,再次按下S1时停止录音。如此反复即可实现多段录音。同理,按下S2时开始放音,再次按下S2是停止放音。如此反复顺序播放多段录音。按下S3关机。
(1)硬件电路设计
电路原理如图4所示。整个电路由语音录放电路、话筒输入电路、按键开关电路及LCD显示电路构成。由于本设计输出直接驱动普通耳机,经实验不需外部功放电路,直接利用ISD4002内部功放输出即可。ISD4002作为从机,其SPI接口的MOSI接控制器的SDO;MISO接控制器的SDI;SCLK接SCK;SS接控制器的SS即可。LCD用于人机交互的界面显示。
(2)软件设计
程序包括主程序以及几个子程序。主程序中,在完成初始化的工作之后,进入一个while循环,等待响应按键触发的中断,若有按键按下,则进入相应的中断服务程序。在按键S1的中断服务程序中,设置一个标志变量,Sl每按下一次,标志变量取反,用来控制录音及停止录音。同理,S2的中断服务程序中也设置一个标志变量,控制开始放音及停止放音。S3的中断服务程序中则发送Power-Down指令关机。程序清单中给出了主程序以及中断服务程序,另外包括LCD驱动程序以及dsPIC的SPI函数库等。(编者注:源程序见本刊网站www.dpi.com.cn。)
7 总 结
该电路易于实现,功能简单实用,可扩展性较好;输出声音清晰、自然。如要增加录音时间,可选用ISD4000系列的其他芯片,程序基本相同。另外,在设计过程中有以下几点事项需要注意:
①在SPI的数据传输中,不同芯片所定义的传输顺序可能不同,因此要注意是先传高位还是先传低位。ISD4002要求先传高位数据,如果与主芯片所定义的顺序相反,则只要把指令码反过来传即可。
②由于ISD4002要求在时钟前半个周期把数据放在传输线上,因此,在使用dsPIC的SPI函数库时需要注意SPI初始化。在本设计中,使用的配置为SPl—CKE—ON&CLK_P0L_ACTIVE_HIGH。
以上两点可能会帮助解决一些常见问题。
- 西门子SM1223 数字量输入输出模块 8输入/8输出继电器6ES7223-1QH32-0XB0
- 西门子SM1223 数字量输入输出模块16输入/16输出24V 6ES7223-1BL32-0XB0
- 西门子SM1223 数字量输入输出模块8输入/8输出24V 6ES7223-1BH32-0XB0
- 西门子SM1223 数字量输入输出模块 8输入24V8输出继电器6ES7223-1PH32-0XB0
- S7-200西门子6ES7223-1PL22-0XA8数字量输入输出PLC控制器扩展模块
- 西门子CPU控制器6ES7223-1PM22-0XA8
- 西门子CPU控制器6ES7223-1BM22-0XA8
- 江苏西门子EM223CN扩展模块6ES7223-1PL22-0XA8代理商
- 嘉兴西门子S7-200CN模块6ES7223-1PH22-0XA8一级代理
- 西门子PLC代理商6ES7223-1HF22-0XA8认准上海施承,诚信经营,品质好货