UPS BP650CH实现nas自动关机 |
您所在的位置:网站首页 › 群晖断网自动关机 › UPS BP650CH实现nas自动关机 |
家里有个自己拼凑的nas需要防止断电不正常关机,因此购买了施耐德后背式BP650CH,之所以选这款是因为带了串口,串口终究还是很方便的东西。不管linux还是window还是其他系统都能够使用,通过串口直接获得ups的信息,就不需要关心操作系统是什么了。 BP650CH的串口协议参考这篇文档是BP650CHBP1000CH串口通信协议.pdf-原创力文档 (book118.com) 默认波特兰2400,8bit数据,1bit停止位,无检验。SecureCRT设置如下 由于这个施耐德的UPS串口并非终端交互式的,因此我们不适合用SecureCRT,采用其他输入和输出分离的串口助手。 我使用Arduino IDE中的串口助手,设置如下 按照手册,首先需要登录到UPS,方法就是输入M回车,那么串口会返回一个V 接着输入QS回车,这个命令是检索状态。注意施耐德的串口交互命令都是回车结尾。 反正QS命令返回的结果格式为: (是结果的开始,然后后面的数值用空格分开 216.1=输入电压216.1伏特(有效值rms) 216.1=输入故障电压216.1伏特(有效值rms) 216.1=输出电压216.1伏特(有效值rms) 000=输出负载,因为我UPS没有接负载,所以就是0,单位是百分比 50.0=输出电压的频率是50Hz 13.5=电池电压13.5V(有效值rms) --.-=内部温度,似乎没法显示内部温度 00001001=UPS状态字节b7~b0 b6为高位的话指示电池电压低 b4为高位指示UPS故障 剩下的看手册 测试1:关闭UPS的市电输入,蜂鸣器10秒叫一次,QS命令检索状态发现UPS的状态字节最高位变成了1,这个时候就可以通知用户进行关机了 测试2:使用破旧没有电池的笔记本电脑装linux系统做断电自动关机的测试。 将USB转串口线插到电脑,lsusb发现串口PL2303驱动 ls /dev/tty*发现串口设备ttyUSB0 安装minicom软件:yum install minicom 然后minicom -s进入设置,选择Serial port setup。然后设置如下 然后save setup as dfl,下次就不用设置了 然后exit from minicom 接着输入minicom 输入M登录后,输入QS就可以查询数据了 退出minicom方法,ctrl+A后,然后按Z,然后按X,然后yes 但是minicom是交互式的,因此我们需要自己写一个程序实现ups的状态扫描来实现关机 #include #include #include #include #include #include #include int serialDevFD;//串口设备描述符 char *serialDev = "/dev/ttyUSB0"; void serialDevOpen() { serialDevFD = open(serialDev,O_RDWR|O_NOCTTY|O_NDELAY);//读写方式打开串口设备,后面两个属性不用管 if(serialDevFD |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |