RS-485/232远程I/O,数据采集/开关量采集
RS-485/232远程I/O,数据采集/开关量采集产品概述:产品包括电源调理,开关量采集、开关量输出和RS-485串行通信。每个串口***多可接255只IBF60系列模块,通讯方式采用ASCII码通讯协议或MODBUSRTU通讯协议,波特率可由代码设置,能与其他厂家的控制模块挂在同一RS-485总线上,便于计算机编程。IBF60产品实现传感器和主机之间的信号采集与控制,用来检测开关量信号,或者控制设备运行。IBF60系列产品可应用在RS-232/485总线工业自动化控制系统,开关量信号测量和控制,高低电平信号的测量与输出以及工业现场信号隔离及长线传输等等。IBF60系列产品按工业标准设计、制造,信号输入/输出之间不隔离,抗干扰能力强,可靠性高。工作温度范围-45℃~+85℃。IBF60系列产品是基于单片机的智能监测和控制系统,所有的用户设定的地址,波特率,数据格式,校验和状态等配置信息都储存在非易失性存储器EEPROM里。产品特点:●可靠性高,编程方便,易于应用●标准DIN35导轨安装,方便集中布线●八路开关量输入,八路开关量输出●通过RS-485/232接口可以设定输出状态●宽电源供电范围:8~32VDC●用户可编程设置模块地址、波特率等●信号输入,输出及电源之间不隔离●支持ModbusRTU通讯协议,自动识别协议●低成本、小体积、模块化设计●通过RS-485/232接口可以读取输入的电平状态●外形尺寸:120x70x43mm典型应用:●电平信号测量、监测和控制●RS-232/485总线工业自动化控制系统●传感器信号的测量●工业现场数据的获取与记录●工业现场信号隔离及长线传输●RS-485远程I/O,数据采集●智能楼宇控制、安防工程等应用系统●设备运行监测与控制●开关量信号采集功能简介:IBF60远程I/O模块,可以用来测量八路开关量信号,并有八路开关量输出。1、开关量信号输入与输出8路开关量信号输入,可接干接点和湿接点,详细请参考接线图部分;8路开关量信号输出集电极开路输出。2、抗干扰可根据需要设置校验和。模块内部有瞬态***二极管,可以有效***各种浪涌脉冲,保护模块。3、通讯协议通讯接口:1路标准的RS-485通讯接口或1路标准的RS-232通讯接口,订货选型时注明。通讯协议:支持两种协议,命令集定义的字符协议和MODBUSRTU通讯协议。模块自动识别通讯协议,能实现与多种品牌的PLC、RTU或计算机监控系统进行网络通讯。数据格式:10位。1位起始位,8位数据位,1位停止位。通讯地址(0~255)和波特率(2400、4800、9600、19200、38400、57600、115200bps)均可设定;通讯网络***长距离可达1200米,通过双绞屏蔽电缆连接。通讯接口高抗干扰设计,&plu***n;15KVESD保护,通信响应时间小于100mS。产品选型:IBF60-□通讯接口485:输出为RS-485接口232:输出为RS-232接口选型举例1:型号:IBF60-232表示通讯接口为RS-232选型举例2:型号:IBF60-485表示通讯接口为RS-485IBF60通用参数:(typical@+25℃,Vs为24VDC)功率消耗:小于0.5W工作湿度:10~90%(无凝露)输入类型:开关量输入,8通道(DI0~DI7)。低电平:输入<1V高电平:输入3.5~30V输入电阻:大于10KΩ隔离耐压:非隔离输出类型:集电极开路输出,电压0~30V,***大负载电流30mA,8通道(DO0~DO7)。通讯:协议RS-485或RS-232标准字符协议和MODBUSRTU通讯协议波特率(2400、4800、9600、19200、38400、57600、115200bps)可软件选择地址(0~255)可软件选择通讯响应时间:100ms***大存储湿度:10~95%(无凝露)外形尺寸:120mmx70mmx43mm工作电源:+8~32VDC宽供电范围,内部有防反接和过压保护电路存储温度:-45~+80℃工作温度:-45~+80℃引脚定义:引脚名称描述引脚名称描述1DO7通道7开关量信号输出端11DO1通道1开关量信号输出端2DO6通道6开关量信号输出端12DO0通道0开关量信号输出端3DO5通道5开关量信号输出端13DI0通道0开关量信号输入端4DO4通道4开关量信号输出端14DI1通道1开关量信号输入端5DO3通道3开关量信号输出端15DI2通道2开关量信号输入端6DO2通道2开关量信号输出端16DI3通道3开关量信号输入端7DATA+RS-485信号正端17DI4通道4开关量信号输入端8DATA-RS-485信号负端18DI5通道5开关量信号输入端9PW+电源正端19DI6通道6开关量信号输入端10GND电源负端,信号地20DI7通道7开关量信号输入端表1引脚定义IBF60字符协议命令集:模块的出厂初始设置,如下所示:地址代码为01波特率9600bps禁止校验和如果使用RS-485网络,必须分配一个***的地址代码,地址代码取值为16进制数在00和FF之间,由于新模块的地址代码都是一样的,他们的地址将会和其他模块矛盾,所以当你组建系统时,你必须重新配置每一个IBF60模块地址。可以在接好IBF60模块电源线和RS485通讯线后,通过配置命令来修改IBF60模块的地址。波特率,校验和状态也需要根据用户的要求而调整。而在修改波特率,校验和状态之前,必须让模块***入缺省状态,否则无法修改。让模块进入缺省状态的方法:IBF60模块边上都有一个INIT的开关,在模块的侧面位置。将INIT开关拨到INIT位置,再接通电源,此时模块进入缺省状态。在这个状态时,模块的配置如下:地址代码为00波特率9600bps禁止校验和这时,可以通过配置命令来修改IBF60模块的波特率,校验和状态等参数。在不确定某个模块的具体配置时,也可以将INIT开关拨到INIT位置,使模块进入缺省状态,再对模块进行重新配置。注:正常使用时请将INIT开关拨到NORMAL位置。字符协议命令由一系列字符组成,如首码、地址ID,变量、可选校验和字节和一个用以显示命令结束符(cr)。主机除了带通配符地址“**”的同步的命令之外,一次只指挥一个IBF60模块。命令格式:(LeadingCode)(Addr)(Command)[data][checksum](cr)(Leadingcode)首码是命令中的***个字母。所有命令都需要一个命令首码,如%,$,#,@,...等。1-字符(Addr)模块的地址代码,如果下面没有指定,取值范围从00~FF(十六进制)。2-字符(Command)显示的是命令代码或变量值。变量长度[data]一些输出命令需要的数据。变量长度[checksum]括号中的Checksum(校验和)显示的是可选参数,只有在启用校验和时,才需要此选项。2-字符(cr)识别用的一个控制代码符,(cr)作为回车结束符,它的值为0x0D。1-字符当启用校验和(checksum)时,就需要[Checksum]。它占2-字符。命令和应答都必须附加校验和特性。校验和用来检查所有输入命令,来帮助你发现主机到模块命令错误和模块到主机响应的错误。校验和字符放置在命令或响应字符之后,回车符之前。计算方法:两个字符,十六进制数,为之前所发所有字符的ASCII码数值之和,然后与十六进制数0xFF相与所得。应用举例:禁止校验和(checksum)用户命令$002(cr)模块应答!00020600(cr)启用校验和(checksum)用户命令$002B6(cr)模块应答!00020600A9(cr)‘$’=0x24‘0’=0x30‘2’=0x32B6=(0x24+0x30+0x30+0x32)AND0xFF‘!’=0x21‘0’=0x30‘2’=0x32‘6’=0x36A9=(0x21+0x30+0x30+0x30+0x32+0x30+0x36+0x30+0x30)AND0xFF命令的应答:应答信息取决于各种各样的命令。应答也由几个字符组成,包括首代码,变量和结束标识符。应答信号的首代码有两种,‘!’或‘>’表示有效的命令而‘?’则代表无效。通过检查应答信息,可以监测命令是否有效注意:1、在一些情况下,许多命令用相同的命令格式。要确保你用的地址在一个命令中是正确的,假如你用错误的地址,而这个地址代表着另一个模块,那么命令会在另一个模块生效,因此产生错误。2、必须用大写字母输入命令。3、(cr)代表键盘上的回车符,不要直接写出来,应该是敲一下回车键(Enter键)。1、读取开关状态命令说明:从模块中读回所有输出通道开关量状态和输入通道开关量状态。命令格式:$AA6(cr)参数说明:$分界符。十六进制为24HAA模块地址,取值范围00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。(cr)结束符,上位机回车键,十六进制为0DH。应答格式:!(dataOutput)(dataInput)00(cr)命令有效。?AA(cr)命令无效或***操作。参数说明:!分界符。十六进制为21H(dataOutput)代表读取到的输出开关状态,两个16进制数,DO7DO6DO5DO4DO3DO2DO1DO0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0dataOutput***个数代表7~4通道第二个数代表3~0通道位值为0:输出三极管不导通位值为1:输出三极管导通十六进制为每个字符的ASCII码。(dataInput)代表读取到的开关状态,两个16进制数,DI7DI6DI5DI4DI3DI2DI1DI0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0dataInput***个数代表7~4通道第二个数代表3~0通道位值为0:输入为低电平位值为1:输入为高电平。十六进制为每个字符的ASCII码。?分界符,表示命令无效。AA代表输入模块地址(cr)结束符,上位机回车键,十六进制为0DH。其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。如果你使用的串口通讯软件输入不了回车键字符,请切换到十六进制格式进行通讯。应用举例:用户命令(字符格式)$016(cr)(十六进制格式)243031360D模块应答(字符格式)!221100(cr)(十六进制格式):213232313130300D说明:读取到输出的数据是22,转成2进制是00100010,那么地址01H模块上输出开关状态是:通道0:三极管不导通通道1:三极管导通通道2:三极管不导通通道3:三极管不导通通道4:三极管不导通通道5:三极管导通通道6:三极管不导通通道7:三极管不导通读取到输入的数据是11,转成2进制是00010001,那么地址01H模块上输入开关状态是:通道0:高电平通道1:低电平通道2:低电平通道3:低电平通道4:高电平通道5:低电平通道6:低电平通道7:低电平2、设置开关量输出命令说明:设置所有输出通道开关量状态。命令格式:#AABB(data)(cr)参数说明:#分界符。十六进制为24HAA模块地址,取值范围00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。DO7DO6DO5DO4DO3DO2DO1DO0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0dataOutputBB通道选择,可选择全部输出通道或单个输出通道。设置BB为00,则表示对全部输出通道进行设置。如对单个通道进行设置,则***个字符B必须设置为1,第二个字符B可设为0-7,代表8个DO输出通道。(data)输出值。1,如果是对所有通道设置(BB=00),则为两个16进制数,***个数代表7~4通道第二个数代表3~0通道位值为0:设置输出三极管不导通位值为1:设置输出三极管导通2,如果是对单个通道设置(BB=1X,X表示要设定的通道),则只能设置为00或01,00:设置X通道输出三极管不导通01:设置X通道输出三极管导通(cr)结束符,上位机回车键,十六进制为0DH。应答格式:>(cr)命令有效。?AA(cr)命令无效或***操作。参数说明:>分界符。十六进制为3EH。?分界符,表示命令无效。AA代表输入模块地址(cr)结束符,上位机回车键,十六进制为0DH。其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。如果你使用的串口通讯软件输入不了回车键字符,请切换到十六进制格式进行通讯。应用举例1:用户命令(字符格式)#010022(cr)(十六进制格式)233031303032320D模块应答(字符格式)>(cr)(十六进制格式):3E0D说明:模块地址01H,设置所有通道(BB=00)的输出为22H,转成2进制是00100010,那么地址01H模块上输出的开关状态是:通道0:三极管不导通通道1:三极管导通通道2:三极管不导通通道3:三极管不导通通道4:三极管不导通通道5:三极管导通通道6:三极管不导通通道7:三极管不导通应用举例2:用户命令(字符格式)#011201(cr)(十六进制格式)233031313230310D模块应答(字符格式)>(cr)(十六进制格式):3E0D说明:模块地址01H,设置通道2的三极管导通。3、配置IBF60模块命令说明:对一个IBF60模块设置地址,波特率,校验和状态。配置信息储存在非易失性存储器EEPROM里。命令格式:%AANNTTCCFF(cr)参数说明:%分界符。AA模块地址,取值范围00~FF(十六进制)。出厂地址为01,转换成十六进制为每个字符的ASCII码。如地址01换成十六进制为30H和31H。NN代表新的模块16进制地址,数值NN的范围从00到FF。转换成十六进制为每个字符的ASCII码。如地址18换成十六进制为31H和38H。TT用16进制代表类型编码。IBF60产品必须设置为00。CC用16进制代表波特率编码。波特率代码波特率042400baud054800baud069600baud0719200baud0838400baud0957600baud0A115200baud表2波特率代码FF用16进制的8位代表数据格式,校验和。注意从bits0到bits5不用必须设置为零。Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0表3数据格式,校验和代码Bit7:保留位,必须设置为零Bit6:校验和状态,为0:禁止;为1:允许Bit5-bit0:不用,必须设置为零。(cr)结束符,上位机回车键,十六进制为0DH。应答格式:!AA(cr)命令有效。?AA(cr)命令无效或***操作,或在改变波特率或校验和前,没有将INIT开关拨到INIT位置。参数说明:!分界符,表示命令有效。?分界符,表示命令无效。AA代表输入模块地址(cr)结束符,上位机回车键,十六进制为0DH。其他说明:假如你***次配置模块,AA=01H,NN等于新的地址。假如重新配置模块改变地址、输入范围、数据格式,AA等于当前已配置的地址,NN等于当前的或新的地址。假如要重新配置模块改变波特率或校验和状态,则必须将INIT开关拨到INIT位置,使模块进入缺省状态,此时模块地址为00H,即AA=00H,NN等于当前的或新的地址。假如格式错误或通讯错误或地址不存在,模块不响应。应用举例:用户命令%0111000600(cr)模块应答!11(cr)说明:%分界符。01表示你想配置的IBF60模块原始地址为01H。11表示新的模块16进制地址为11H。00类型代码,IBF60产品必须设置为00。06表示波特率9600baud。00表示禁止校验和。4、读配置状态命令说明:对指定一个IBF60模块读配置。命令格式:$AA2(cr)参数说明:$分界符。AA模块地址,取值范围00~FF(十六进制)。2表示读配置状态命令(cr)结束符,上位机回车键,十六进制为0DH。应答格式:!AATTCCFF(cr)命令有效。?AA(cr)命令无效或***操作。参数说明:!分界符。AA代表输入模块地址。TT代表类型编码。CC代表波特率编码。见表2FF见表3(cr)结束符,上位机回车键,十六进制为0DH。其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。应用举例:用户命令$302(cr)模块应答!300F0600(cr)说明:!分界符。30表示IBF60模块地址为30H。00表示输入类型代码。06表示波特率9600baud。00表示禁止校验和。5、读模块名称命令说明:对指定一个IBF60模块读模块名称。命令格式:$AAM(cr)参数说明:$分界符。AA模块地址,取值范围00~FF(十六进制)。M表示读模块名称命令(cr)结束符,上位机回车键,十六进制为0DH。应答格式:!AA(ModuleName)(cr)命令有效。?AA(cr)命令无效或***操作参数说明:!分界符,表示命令有效。?分界符,表示命令无效。AA代表输入模块地址。(ModuleName)模块名称IBF60(cr)结束符,上位机回车键,十六进制为0DH。其他说明:假如格式错误或通讯错误或地址不存在,模块不响应。应用举例:用户命令$08M(cr)模块应答!08IBF60(cr)说明:在地址08H模块为IBF60。6、设定复位输出命令说明:设置指定模块的复位输出状态。命令语法:$AA7VV(cr)参数说明:$分界符。AA模块地址,取值范围00~FF(十六进制)。7表示启动或禁止模块的数据采集通道命令VV两个16进制数。***个数代表7~4通道第二个数代表3~0通道位值为0:设置输出三极管不导通位值为1:设置输出三极管导通DO7DO6DO5DO4DO3DO2DO1DO0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0VV(cr)结束符,上位机回车键(0DH)。响应语法:!AA(cr)命令有效。?AA(cr)命令无效或***操作参数说明:!分界符,表示命令有效。?分界符,表示命令无效。AA代表输入模块地址。(cr)结束符,上位机回车键(0DH)。其他说明:假如语法错误或通讯错误或地址不存在,模块不响应。应用举例:用户命令$017FF(cr)模块应答!01(cr)说明:设置通道值为0xFF。设置所有输出三极管导通1)数字接口电路ADC的数字接口电路部分与微控制器相连,可以分为并行接口形式和串行接口形式。大多数ADC的数据输出具备并行接口,能方便地与微控制器的数据总线连接,且其数据传输速度饮。ADC的数据总线宽度以8位、16位居多,许多10位至16位的ADC既能以16位接口方式与16位微控制器直接相连,也能以8位接口方式与8位的微控制器相连,分高8位和低8位两字节传送。并行接口除了并行的数据线外,还需要若干控制信号线和状态信号线,如启动转换信号线、转换结束信号线、读信号线、写信号线、片选信号线等。各种ADC的芯片各不相同,因此在设计接口电路时,必须针对具体型号的芯片仔细阅读各信号的定义和时序及所用微控制器的总线时序,以设计出满足时序要求的接口电路。串行接口只需要一根双向数据线或两条数据传输方向相反的数据线和***的控制线这就能大大减少芯片的引脚数目,使芯片的封装小型化,进一步简化整机布线。多数微控制器都带有串行接口,这为串行数据输出的ADC使用带来了极大的方便。由于数据传输是以串行的方式进行的,所以数据传输率较低,但随着芯片工作频率的提升,串行传输速率已有很大提高。常见的串行接口有通用异步接受/发送器UART(UniversalAsynchronousReceiver/Tran***itter),串性外围接口SPI(SerialPeripheralInterface),IC总线(InterICBus)。ModbusRTU通讯协议:模块的出厂初始设置,如下所示:Modbus地址为01波特率9600bps让模块进入缺省状态的方法:IBF60模块边上都有一个INIT的开关,在模块的侧面位置。将INIT开关拨到INIT位置,再接通电源,此时模块进入缺省状态。在这个状态时,模块暂时***为默认的状态:地址为01,波特率为9600。在不确定某个模块的具体配置时,用户可以查询地址和波特率的寄存器40201-40202,得到模块的实际地址和波特率,也可以跟据需要修改地址和波特率。注:正常使用时请将INIT开关拨到NORMAL位置。支持ModbusRTU通讯协议,命令格式按照标准ModbusRTU通讯协议。支持功能码01,读线圈状态。1表示高电平,0表示低电平。支持功能码05,设置单个线圈。1表示三极管导通,0表示三极管断开。支持功能码03(读保持寄存器)和功能码06(写单个寄存器),ModbusRTU通讯协议应用举例:1,支持ModbusRTU通讯协议功能码01(读线圈状态),命令格式按照标准ModbusRTU通讯协议。通讯举例:假如模块地址为01,以16进制发送:0101000000083DCC,即可取得寄存器的数据。0101000000083DCC模块地址读线圈状态线圈地址高位线圈地址低位线圈数量高位线圈数量低位CRC校验低位CRC校验高位假如模块回复:010101031189即读到的数据为0x03,***后一位换成2进制即00000011。即表明现在输出三极管通道2~7断开,通道1和0接通。010101031189模块地址读线圈状态数据的字节数数据CRC校验低位CRC校验高位2,支持ModbusRTU通讯协议功能码05(设置单个线圈),命令格式按照标准ModbusRTU通讯协议。通讯举例:假如模块地址为01,以16进制发送:01050000FF008C3A,数据为0xFF00表示设置三极管导通。如果数据为0x0000则表示断开三极管(命令:010500000000CDCA)01050000FF008C3A模块地址设置单个线圈线圈地址高位线圈地址低位数据高位数据低位CRC校验低位CRC校验高位假如模块回复:01050000FF008C3A即设置成功01050000FF008C3A模块地址设置单个线圈线圈地址高位线圈地址低位数据高位数据低位CRC校验低位CRC校验高位2)电源和接地ADC是模拟信号和数字信号混合的电路。模拟信号部分是精密的信号处理部分,如分辨率为12位的5V量程的ADC所对应1LSB的模拟电压为1.22mV。数字信号部分是与,统的其他逻辑电路连接在一起的,以脉冲信号工作,信号幅度大,频谱宽,对于模拟信号来说是一个重要的干扰源,地线噪声高到几+mV甚至几百mV,如果接地不当,布线不良,数字噪声会严重影响模拟信号部分的精度或产生乱码(即模拟输入电压不变,但数字输出低位值随机性跳动),因此高分变率或高速模数转换系统要特别重视印制电路板的布线(优其是地线)和电源的去耦。不良的地线连接方式如图3.8.1所示,图中地线上的电感和电阻是印制电路上的地线分布电感和分布电阻,而且该电路中的数字地线电流所产生的地线噪声会严重干扰模拟电路,因此该方式是一种不良的接地方式。改进的接地连接方式如图3.8.2所示,该电路中则采取了以下措施,有利于降低地线噪声的干扰。(1)将模拟地和数字地分开,并建立一个模拟参考点,所有模拟部分的地都接到这个考点上。在实际布线中做到理想的一点接地是很困难的,但也应尽量合理布局,尽量缩地线长度,同时加大地线的截面积。(2)多数ADC都有两个接地端:一个是模拟地(AGND),应接模拟参考点或它本身为模拟参考点:另一个是数字地(DGND),应与数字电路和数字电源地相连.AGNDGND之间只应有一处相连,通常应靠近ADC的引脚连接。(3)许多ADC需要几种电源电压,一般来说+5V是供数字部分使用的,+15V是供模分使用的。这两组电源应分别接到数字地和模拟地上。并且要注意这两组电源的变压H之间应具有良好的绝缘和良好的静电隔离。4)模数转换的电源应加去糯电容,去耦电容应尽量靠近ADC的电源端。电容一般可-10uF担电容和0.01~0.1F高频瓷介电容并联。)
深圳市贝褔科技有限公司
业务 QQ: 1831176842