常用串行EEPROM的编程应用(二)

Microwire总线

Microwire总线是美国国家半导体公司研发的一种简单的串行通讯接口协议,该总线是采用三线进行数据传输。Microwire总线和SPI总线一样数据输入输出分别使用一根引线,同样可以提供同步数据传输方式,可以适用在多种微控制器、EEPROM或ADC等场合。常用EEPROM的93系列芯片就是采用该总线的芯片,采用COMS技术,体积小巧,和24、25系列芯片一样也是一种理想的低功耗非易失性存储器。常见的93系列EEPROM存储器容量从256位到16K位。93芯片广泛使用在各种家电、通讯、交通或工业设备中,通常是用于保存设备或个人的相关设置数据。如最常见到网卡上的93芯片就是用于保存网卡的MAC物理地址、供应商名称以及相关配置。生产93系列芯片的公司也有很多。如ATMEL公司生产的93C46芯片是该公司生产的93系列芯片的一种,它有1K位的存储空间,93系列有二种数据输入输出模式,分别为8位和16位数据模式,1K位的存储位就可以分为128×8和64×16,它的电压范围是2.7V到5.5V和1.8V到5.5V,可以适应低电压的应用,在5V的电压下最高时钟频率可以达到2M,芯片可以进行一百万次的擦写,数据可以保存一百年。图一是93C46的PID封装和用于网卡的93LC46芯片。

图一

图二

图二是ATMEL公司的93C46的PID封装引脚图。CS引脚为片选引脚,高电平为有效,用于同一总线上不同芯片的选择。在执行每一个指令之前先要把CS拉高,指令完成后把CS拉低使芯片进入复位休眠状态,CS为低时,芯片保持复位状态。在连续操作多个指令时,指令与指令间,CS必须要有不小于一个TCS时间的低电平保持,使芯片复位。ATMEL公司的93C46芯片工作电压2.7V-5.5V的型号TCS不能小于250ns,工作电压1.8V-5.5V的型号TCS不能小于1000ns。SK是串行时钟输入引脚。DI是串行数据输入引脚,接收微控制器传向芯片的数据、地址和命令数据。DO是串行数据输出引脚。ORG引脚是内部数据结构选择输入引脚,该脚为高电平时数据结构为×16,低电平时数据结构为×8,DC是空脚。

图三

图三是93C46芯片的MicroWire总线时序图。在编写驱动程序前,先要分析一下这个时序图。从图中可以看到,在CS被拉高至少tCSS时间(CS初始时间)后,才能开始在SK上传送时钟信号,时钟的正半周和负半周时间不能小于tSKH和tSKL。最后一个时钟的正半周发送完后CS仍要保持tCSH时间(CS保持时间)后才可以拉低CS,tCSH的最小值可为0。指令输入时数据在SK的负半周低电平时开始设置,图中的tDIS(DI设置时间),在SK的高电平时至少保持tDIH时间(DI保持时间)。在图中第四条时序线图中则可以看到在芯片读操作时DO输入1或0时的时序,可以看出在SK上升沿开始后tPD0或tPD1时,DO才输出数据,在编写驱动时就要注意读DO时可在SK拉高好延时tPD0(tPD1)后才读取DO的值,否则会造成误读。第五条时序线图则时指芯片编程时在CS上升沿开始tSV时间后DO输出状态值,tDF是指CS下降沿开始到tDF时间后才进入高阻态。因为不同的芯片型号、工作电压和工作频率这么参数值都会有所不同,93C46的具体参数可以参看光盘中的芯片资料。

93C46有7个操作指令,微处理器就是靠发送这几个指令来实现芯片的读写等功能。表一是93C46的指令表。在93C的其它型号中指令基本是一样,所不同的是地址位的长度,在使用时要查看相关芯片资料,得知地址位长度后再编写驱动程序。因为93C的数据结构有两种,所以地址位和数据位会有x8\x16两种模式,这在编程时也是要注意的。在ERASE、WRITE、ERAL、WRAL指令之前必须先发送EWEN指令,使芯片进入编程状态,在编程结束后发EWDS指令结束编程状态。

指令 起始位 命令代码 地址位 数据位 说明
x8 x16 x8 x16
READ 1 10 A6-A0 A5-A0     读取指定地址数据
EWEN 1 00 11xxxxx 11xxxx     擦写使能
ERASE 1 11 A6-A0 A5-A0     擦除指定地址数据
WRITE 1 01 A6-A0 A5-A0 D7-D0 D15-D0 把数据写到指定地址
ERAL 1 00 10xxxxx 10xxxx     擦除所有数据,只在Vcc为4.5V-5.5V有效
WRAL 1 00 01xxxxx 01xxxx D7-D0 D15-D0 写指定数据到所有地址,只在Vcc为4.5V-5.5V有效
EWDS 1 00 00xxxxx 00xxxx     擦写禁止

表一

READ(读数据)

所有的指令的第一位为START(起始位),芯片确认起始位的条件是:CS和DI为高电平时,SK的第一个脉冲高电平时DI仍为高电平。微控制器发送完起始位后就可以输入7种指令所需的命令代码、地址码和数据来完成指令操作。READ指令在发送完地址码AN-A0后(地址码位数位要根据型号和所选用的数据结构来确定),DO从高阻态变为低电平,在随后的一个SK脉冲后在DO输出DN-DO的数据(数据位数由所选用的数据结构来确定),微控制器在这时读取DO取得数据,读取完数据后拉低CS结束指令。

图四

EWEN(擦写使能)

芯片上电后就进入EWDS擦写禁止状态,这时要进行擦写指令,微控制器必须先要发送EWEN指令,使能芯片进入允许擦写的状态,否则操作任何擦写指令都是无效的。在完成擦写操作后发送EWDS指令,使芯片进入禁止擦写的状态,这样可以防止因干扰或其它原因造成的数据错误。要注意的是:在第一个EWEN指令后芯片一直保持在擦写允许状态,直到使用EWDS或开断电源,芯片才会重新进入擦写禁止状态。

图五

EWDS(编程禁止)

图六

WRITE(写入数据)

WRITE指令在发送完数据位后,CS至少拉低tCS时间再拉高,这时DO会从高阻态变为低电平来指示芯片正在进行编程,微控制器应在这时检测DO,当DO再次拉高时芯片编程完成芯片进行就绪状态,这时才可以进行下一个指令。芯片编程所需的时间为tWP,这个时间最大为10MS,所以微控制器在对芯片编程时最好用一个循环检测DO,当检测到高电平时,说明写入过程结束,应该退出循环体。如果循环体循环10MS后仍然没有检测到高电平时,说明有故障引起操作超时,这时要退出循环体,以免进入死循环。这样的代码在前面文章的例子中也是有使用的。WRAL指令和WRITE指令对写入过程的处理方式是一样的,不一样的是WRAL是把数据写入到所有地址中,时间会长点,而且要求电源在4.5-5.5V。

图七

WRAL(全部写入)

图八

ERASE(擦除数据)

ERASE指令可以说是另一种形式的写入指令,所不同的是它不用发送数据,它会把指定地址的所有数据位都置‘1’,也就是相当于用WRITE写入‘FF’。而ERAL指令就是相当于用WRAL写入‘FF’,同样ERAL也需要工作在4.5-5.5V电源下。

图九

ERAL(擦除所有数据)

图十

在这里笔者把上一篇文章的电路更改了一下,使它不但能完成本篇的实验外,还能配合笔者编写的上位机程序,成为一个简单实用的串行EEPROM读写器,它不单单可以支持93C系列的芯片,同时也可以支持24C、25系列等多种芯片。图中的芯片插座IC2的1到7脚连接取AT89C2051的P1.1至P1.7,因为P1.2-P1.7内部是有上位的,所以可以不用在外部加上拉电阻,而P1.0/P1.1是需要外部上拉的,所以在P1.1上加R7进行上拉。如不加这个电阻的话93C46的读写实验就无法成功了。J1使用DB9的孔式接头,连接电脑时可以使用一根串口延长线。图12是笔者用万用电路板制作的实验电路,这个电路最大的特点就制作简单、体积小巧、无需外接电源,使用到单片机使其性能稳定,而且可以进行程序的修改使其增加更多的芯片支持。图十二是笔者用万用板制作的实验电路。

图十一

图十二

对93C46的串口通讯实验方法和上一篇文章的方法是一样的,这里不再多做介绍了,只是93C46多了一个擦除命令的实验,命令代码是02 00 00 00,发送这个代码后擦除成功后就返回00,不成功返回01。要注意的是擦除命令只在VCC在4.5-5.5V有效。

作者编写的上位机程序软件界面如图十三,使用此程序就可以用这个电路读写24C、93C、25系列的串行EEPROM芯片。首先要把EEPROM.hex文件烧写到AT89C2051中,连接PC串口就可以使用EEPROM.exe软件进行读写了。

示例程序以及烧写器的HEX和上位程序下载 -》hex

图十三

常用串行EEPROM的编程应用(一)

EEPROM是“Electrically Erasable Programmable Read-only”(电可擦写可编程只读存储器)的缩写,EEPROM在正常情况下和EPROM一样,可以在掉电的情况下保存数据,所不同的是它可以在特定引脚上施加特定电压或使用特定的总线擦写命令就可以在在线的情况下方便完成数据的擦除和写入,这使EEPROM被用于广阔的的消费者范围,如:汽车、电信、 医疗、工业和个人计算机相关的市场,主要用于存储个人数据和配置/调整数据。EEPROM又分并行EEPROM和串行EEPROM,并行EEPROM器件虽然有很快的读写的速度,但要使用很多的电路引脚。串行EEPROM器件功能上和并行EEPROM基本相同,提供更少的引脚数、更小的封装、更低的电压和更低的功耗,是现在使用的非易失性存储器中灵活性最高的类型。串行EEPROM按总线分,常用的有I2C,SPI,Microwire总线。本文将介绍这三种总线连接单片机的编程方法。

I2C总线

I2C总线(Inter Integrated Circuit内部集成电路总线)是两线式串行总线,仅需要时钟和数据两根线就可以进行数据传输,仅需要占用微处理器的2个IO引脚,使用时十分方便。I2C总线还可以在同一总线上挂多个器件,每个器件可以有自己的器件地址,读写操作时需要先发送器件地址,该地址的器件得到确认后便执行相应的操作,而在同一总线上的其它器件不做响应,称之为器件寻址,这个原理就像我们打电话的原理相当。I2C总线产生80年代,由PHLIPS公司开发,早期多用于音频和视频设备,如今I2C总线的器件和设备已多不胜数。最常见的采用I2C总线的EEPROM也已被广泛使用于各种家电、工业及通信设备中,主要用于保存设备所需要的配置数据、采集数据及程序等。生产I2C总线EEPROM的厂商很多,如ATMEL、Microchip公司,它们都是以24来开头命名芯片型号,最常用就是24C系列。24C系列从24C01到24C512,C后面的数字代表该型号的芯片有多少K的存储位。如ATMEL的24C64,存储位是64K位,也就是说可以存储8K(8192)字节,它支持1.8V到5V电源,可以擦写1百万次,数据可以保持100年,使用5V电源时时钟可以达到400KHz,并且有多种封装可供选择。我们可以很容易的在身边的电器设备中发现它们的身影,如电视中用于保存频道信息,电脑内存条中保存内存大小等相关信息,汽车里用于保存里程信息等等。图一就是ATMEL24C64芯片的PID封装和用于内存条SPD(Serial Presence Detect)上的24芯片。

图一

图二

图二是ATMEL公司24C64的引脚定义图。A0-A2用于设置芯片的器件地址,在同一总线上有多个器件时,可以通过设置A0-A2引脚来确定器件地址。SDA是串行数据引脚,用于在芯片读写时输入或输出数据、地址等,这个引脚是双向引脚,它是漏极开路的,使用时需要加上一个上拉电阻。SLC脚是器件的串行同步时钟信号,如果器件是使用在单片机系统中,那么SLC脚应该由单片机控制,根据单片机的程序要求产生串行同步时钟信号,控制总线的存取。WP脚是写保护脚,当这个脚接入高电平时,芯片的芯片数据均处于禁止写入状态(所禁止的地址段要看各芯片的详细资料),当把WP脚接到地线时,芯片处于正常的读写状态。当一个电路要求正常使用时是不允许程序修改EEPROM中的数据,只有在维护设置才可以修改数据,这时可以在电路上设置WP跳线或用微处理器对WP进行控制,这样只有在特定的电路状态下才可以更改到数据。

要在单片机系统中应用I2C总线的EEPROM做存储设备时,先要了解I2C总线的基本驱动方法。在I2C总线空闲时,SDA和SCL应为高电平,也只有在这个条件下,微处理器才可以控制总线进行传输数据。在数据传输的刚开始时,总线要求有一个START(开始位)位做为数据开始的标识,它的要求是SCL为高时,SDA有一个从高到低的电平跳变动作,完成这个动作后才可以进行数据传输,时序图参看图三‘开始’。传输数据时,只有在SCL为高电平时,SDA上的电平为有效数据。编写单片机向总线送数据程序时则可以在SCL还在低电平时,把数据电平送到SDA,然后拉高SCL,这时SDA不应有电平跳变,延时后拉低SCL,再进行下一位的数据传送直到完成。在总线上读数据时也是只有在SCL为高时,SDA为有效数据。时序参看图三‘保持’。传送数据完成后,总线要有一个STOP(结束位)位,来通知总线本次传输已结束,它的要求是SCL为高时,SDA有一个从低到高的电平跳变动作,正好和START位相反。在编程时要注意的是:不要在SCL为高时改变SDA的电平状态,否则可能会被误认为是停止位,而使得操作失败。

图三

I2C总线在每接收完一个字节(8个二进制位)后,在第九个时钟信号时,会在SDA上回应一个低电平的ACK应答信号,以此表明当前受控的器件已接收完一个字节,可以开始下一个字节的传送了。时序图可以参看图四。单片机编程时可以在传送完一个字节后,把连接SDA的IO口线设置回读数据状态,如使用51系列的单片机时就要把IO口置高电平。然后在SCL操作一个脉冲,在SCL为高时读取SDA,如不为低电平就说明器件状态不空闲或出错。需要注意因为SDA是双向的IO,无论是微处理器接收还是器件接收,每个字节完成后,接收方都可以发送一个ACK回应给发送方。

图四

I2C总线在操作受控器件时,需要先发送受控器件的器件地址,24系列的EEPROM也不例外,在每次命令前需要先发送一个字节的器件地址和读写标识,也可称为器件录址。图五是24C64的器件寻址命令中每个位所代表的意思。A2、A1、A0位是器件地址,它是对应于芯片的A2、A1、A0引脚,也就是说如果芯片A0引脚被设置成高电平时,在发送器件地址命令时字节中的A0位要设置为1,A0引脚为低电平时A0位设置为0。这样不难看出在同一总线可以挂8个24C64。ATMEL公司的24C系列芯片24C32及以上的型号使用16位地址进行寻址。24C32之前的型号因为使用的是8位地址,所以在超过256字节的8位地址型号中会占用到A0、A1、A2位的来做页地址,每页有256字节,以此解决地址位不足的问题。所以不同的型号器件地址位定义就有所不同,各型号的器件地址字节定义如图五至图七。要注意的是24C01是没有器件地址的,还有24C16/16A的A0-A2已被页地址占用完,也就是说这三个型号的芯片只能在同一总线上挂一个,所以在设计电路选择器件时要注意这个问题。器件地址字节中的R/W位是用于标识当前操作是读器件还是写器件,写器件时R/W位设置0,读器件时R/W位设置1。

图五

图六

图七

24C系列芯片的读写指令格式只有几种,下面以24C64芯片的指令格式来说明。

写入单个字节

写入字节指令每次只能向芯片中的一个地址写入一个字节的数据。首先发送开始位来通知芯片开始进行指令传输,然后传送设置好的器件地址字节,R/W位应置0,接着是分开传送十六位地址的高低字节,再传送要写入的数据,最后发送停止位表示本次指令结束。图八是写入单个字节的时序图。

图八

页写入

24C64支持32字节的页写入模式,它的操作基本和字节写入模式一样,不同的是它需要发送第一个字节的地址,然后一次性发送32字节的写入数据后,再发送停止位。写入过程中其余的地址增量自己由芯片内部完成。图九页写入的时序图。无论那种写入方式,指令发送完成后,芯片内部开始写入,这时SDA会被芯片拉高,直到写入完成后SDA才会重新变的有效,在编写微处理器程序时可以在写入的时候不停发送伪指令并查询是否有ACK返回,如果有ACK返回则可以进行下一步操作。

图九

 

读当前地址

这种读取模式是读取当前芯片内部的地址指针指向的数据。每次读写操作后,芯片会把最后一次操作过的地址作为当前的地址。在这里要注意的是在微处理器接收完芯片传送的数据后不必发送给低电平的ACK给芯片,直接拉高SDA等待一个时钟后发送停止位。图十是读当前地址时序图。

图十

 

读任意地址

“读当前地址”可以说是读的基本指令,读任意地址时只是在这个基本指令之前加一个‘伪操作’,这个伪操作传送一个写指令,但这个写指令在地址传送完成后就要结束,这时芯片内部的地址指针指到这个地址上,再用读当前地址指令就可以读出该地址的数据。图十一是读任意地址的时序图。

图十一

连续读取

连续读取操作时只要在上面二种读取方式中芯片传送完读取数据后,微处理器回应给芯片一个低电平的ACK应答,那么芯片地址指针自动加一并传送数据,直到微处理器不回应并停止操作。图十二是连续读取的时序图。

图十二

ATMEL公司的24C系列的其它型号的读写操作方式基本和上面介绍的相同,只是在8位寻址的芯片中地址位只用一个字节,还有就是在24C01中没有器件地址,地址位只占用高7位,最低位为R/W位.。其它公司的24系列的EEPROM芯片的驱动方式也基本和以上所介绍的一样。

图十三是笔者设计的制作简单的24C读写器。可以用它来做24C芯片的驱动程序编写实验,也可以配合上位机程序做24C的读写器使用。上位机程序及相关内容向笔者发送电邮索要pnzwzw@163.com。电路是由一片AT89C2051芯片做为主控芯片,作用是用于连接电脑的RS232和驱动24C芯片,晶振使用11.0592M。RS232电平转换是使用二个PNP三极管组成。电源部分则直接在RS232上的4、7引脚取电,取电时需要在用软件控制这两脚为+9V至+12V之间,再通过D5稳压得到5.1V,无需外加电源。24C64的SCL和SDA连接到P1.2/P1.3脚,因这两个IO脚内部有上拉,所以无需外接上拉电阻。

图十三

本文附带一份用C语言编写的实验源程序和编译好的HEX文件,把HEX烧入到AT89C2051就可以开始实验了。实验程序是可以读写24C32/64/128/256/512的任意地址,程序使用模块化函数设计,读者朋友可以方便的加入到自己的程序中。实验时可以用串口调试软件。单片机程序设计了简单的通讯协议,使用57600比特率,通讯协议的数据包是这样定义的:每个包有4个字节,命令字、地址高位、地址低位、数据。读取时命令字为00H,数据字节不可以用,返回读出的数据。写入时命令字为01H,返回00H为成功,返回01H为失败。要在24C64的2F3H地址上写入数据05H,则要发送01 02 F3 05。

实验程序下载 —》 c1

连接好实验电路板,按图十四设置好串口,打开串口后可以看到板上的LED在闪烁。输入01 02 F3 05,发送后便可以把05写入到24C64的02F3H地址中,返回00为写入成功。

也可以用读命令看看是否05已写入,输入00 02 F3 00 发送后返回05,说明实验成功。

图十四

图十五

SMC4四轴控制器入门教程(4)-输出端口

SMC4 四轴脱机控制器支持15个灌流式输出端口,标号为OUT1-OUT15,每个输出端口功能不固定,具体功能需要在系统中配置或在程序中通过程序指令使用。另有一个PWM端口专用于主轴速度信号输出,可连接有PWM输入端口的直流/交流/伺服等电机驱动设备,甚至是舵机(参考http://diy.cdle.net/?p=248)。这个PWM信号可以通过IO转接板转换成0-10V信号,用于连接变频器。

输出端口定义:

下图为主机后面板上两个DB25端口分别为OUT和IN端口,其中图上左边的DB25端口为OUT端口,有8个GND引脚、15个OUT引脚,1个5V电源输出(500mA)。

下图为主机后面板接入IO转接板的引脚定义。OUT输入转接板除了PWM信号 可经过转换电路转换成0-10V信号外,其它脚号功能上仍然于DB25一样,只是更方便于接线。

输出端口的电路形式

OUT1-OUT15输出形式均是灌电流形式,内部电路为达林顿开集,建议负载的电压在24V之内,电流小于200mA。下图为单一个输出端口OUT15连接一个LED的应用示意图。

从上图可以看出,输出端口并不主动输出电流,电流是先经过限流电阻和LED,再流入输出端OUT15,再从电路板内部流入电路地(GND)。简单的理解就是输出端口相当于一个开关连接于GND和负载之间,所以不能在输出端口上直接连入电源或电阻过小的负载,否则会损坏控制器内部电路。

如果所连接的电路需要的是电压开关信号,则可以使用加装上拉电阻的方法。具体电路可以参考下图。

PWM端口为高速光耦上拉输出,输出TTL脉冲,最大输出电流约为1mA,只能做为TTL信号连接其它电路和设备。

PWM和0-10V的选择

PWM信号通过输出转接板后,可以提供PWM和0-10V两种信号选择。PWM和0-10V的切换可以通过设置输出转接板上的跳线。输出转接板默认输出0-10V信号,JP1跳线为12。当JP1路线设置为23时输出为PWM信号。

0-10V跳线

PWM跳线

PWM信号输出的是可变脉宽的信号,输出频率、宽度、相位可以在主轴设置界面中调整。主要用于连接需要用PWM信号控制速度的设备。PWM端口为专用端口,在设置中不需要进行使能设置。

0-10V信号输出的是0-10V连续可变的模拟电压信号。主要用于连接变频器,控制主轴速度。此信号是由PWM经电路转换而成,信号波形是受PWM设置影响。这里给出常用于连接变频器的典型设置。要注意的时,在使用这个信号时输出小板的12V端口需要连接12V电压。

OUT输出端口可以连接如下常见设备:

1-固态继电器

2-小型继电器或小型电磁阀

3-LED指示灯

4-变频器

5-PLC

连接小型继电器或小型电磁阀时,最好使用带光耦的模块,或是增加继流二极管防止感性元件在关断时产生的反向电流损坏端口。

下面给出变频器、继电器模块和固态继电器的实际连接示例和设置。

变频器

变频器连接一般连接三个功能端子,分别为正/反转以及0-10V调速。当然不一定三上功能都连接,具体可以按需求连接。

此示例中正转M03连接到OUT1,Enable使能设置为1,说明这一项功能生效,PinN引脚号为1,H/L电平为0则说明在使用M03正转功能时端口输出为低电平,关闭M03时输出高电平,如果设置为1时则电平输出则正好相反。

同理M04功能也是一样,只是引脚连接到OUT2 。

0-10V端口则直接连接到变频的相应端口,通常标识为AVI/AI/AIN等。要注意的是使用这个端口时,输出小板的12V端口需要连接12V电压,12V可以取自控制器所连接电源,也可以取自变频器的12V输出。

继电器模块

使用带光耦的继电器模块,一来可以提高设备的抗干扰性,二来可以避免直接连接感性元件,最大限度减少了端口损坏的可能性。

下面这个连接实例,连接于OUT1,并且关联到M08功能。要求是执行到M08指令时,继电器吸合后延时1秒再往下执行。

这里使用的继电器模块是12V的,有效输入电平在模块的跳线中设定为低电平。

继电器模块电源端口的DC+和DC-分别连接于控制器的12V和GND端口中,IN端口连接到控制器的OUT1,这产硬件连接就完成了。

要实现上述功能控制器设置如下

使能:该项设置为1时,此项目生效,设置为0时,此项目失效。
脚位:硬件所连接的端口号。
电平:有效电平为高时,设电平为1。
有效电平为低时,设电平为0。
延时:功能执行后延时多久执行下一条指令。(PWM项无效)

在主轴设置菜单中只能设置M03、M04、M07、M08,4个指令的硬件连接。M03\M04为互斥开关,就是说执行一个开启后另一个会关闭,可以用M05关闭它们。M09则同时关闭M07/M08。

下面是测试上面连接的继电器模块的小段程序。

执行M08后,继电器模块吸合导通,并延时一秒后再执行第二行的G04P2000(这行为G04延时2秒),出就是OUT1共导通了3秒,然后M09让继电器模块关闭。

固态继电器

固态继电器接法原理和继电器模块相当。下面是把固态继电器接在OUT2,并绑定在M07功能上。连接时只需要把电源连接到固态继电器输入+(图上是连的5V,也可以连12V,视乎固态继电器的输入电压要求),其它的设置用法和上面的继电器模块相当,这里不再说明。

RESET跟随

跟随RESET功能也是一个输出功能,作用就是在所绑定的输出口上反映当前的RESET状态,也就是用高低电平来说明是不是处出于急停状态。设置方式和上文说的M指令一样,不过需要调用。在应用中可以连接一个状态LED来查看RESET状态。

在程序中控制端口输出

在程序中除了用M30x、M40x来进行IO输入的检查,同样也可以用M10x、M20x来控制OUT1-OUT15的导通和关断。M10x输出为虚高,可以看成是内部的电子开关关断,M20x输出为低,可以看成是内部的电子开关导通,电流流入地(GND)。x为1-15。

套用上文的继电器模地测试,因连接的是OUT1,所以程序可以改成下面的代码片断,实际效果是一样的。

M201
G04P3000
M101

特殊功能

本控制器还有一个特殊功能就是可以使用面板上的功能键F1-F5来直接控制OUT1-OUT5这五个输出端口。此功能只能在程序停止时使用,要注意的是使用此功能时要考虑是否要和其它功能共用端口。比如开启了这个功能,而M07也设置在OUT1,那么功能键F1在程序停止时可以控制OUT1端口。

开启和关闭方法 ,在“工厂模式”界面框中输入密码。

开启密码:033501  关闭密码:033500