中波发射机播出时间的智能化控制
2015-12-29毕数学
□毕数学
阜阳转播台有7 个播出频率,月末周二和平时周二的播出时间不同,需要由人工对每个频率的播出时间进行修改,月末周二修改一次,平时再改回来一次。每次修改耗时十余分钟,还要对照表格仔细修改,以防出错,对操作者的电脑水平要求较高。为了提高工作效率,确保播出时间不出错,需要设计一款智能化的程序,用来快速准确地修改发射机的播出时间。
开始,我们设计的程序使用JAVA编程语言,主要运用了socket 编程技术,对发射机的控制单元下发相关指令。由于研究不仔细,对发射机自动监控系统不熟悉,以为只要对监控软件的配置文件进行修改替换即可,程序开发经历了两次失败。
历失败后,和同事进行交流,对发射机监控系统的有关资料进行深入分析,我终于明白发射机播出时间等信息的修改是由电脑和发射机控制单元进行数据交互来实现的,电脑本地的配置文件只是缓存,不起决定作用。
首先,使用抓包工具进行抓包,获得了监控系统和控制单元之间的指令交互内容。不过交互内容非常多,需要根据端口和IP 进行过滤筛选。
以图1 为例进行详细解释,鼠标选中部分是一条修改播音时间的指令内容。
52 01 00 04 00 01 00 00 01 04 00 02 00 00 02 04 00 02 17 00 ……
52 01 就是修改播音时间。后面每3 个16 进制字符串就是一个时间,2 个时间构成一个播音区间:00 04 00 01 00 00,就是星期日4:00 开机到星期一0:00 关机;01 04 00 02 00 00 就是星期一4:00 开机到星期二0:00 关机;02 04 00 02 17 00 就是星期二4:00 开机到星期二23:00 关机(十六进制,17代表1×16+7=23)。
图1 抓包信息
掌握了指令的规则,就可以模拟其内容发送批量指令,达到一键修改发射机工作时间的目的。
在普通电脑上运行监控系统,因为无法与发射机通信,监控系统持续报错,无法操作,更别提抓包。因此开发过程中最大的困难还是必须在机房真实环境进行开发,同时又不能影响安全播出。
使用本程序,修改多台发射机工作时间,只需要鼠标点击几下,静候半分钟就可以完成修改。智能化程序代替人工修改,杜绝了出错的可能,保障了台站的安全播出。教训是开始设想工具能全天运行,到时间自动切换发射机工作时间,完全不用人工干预。但是因为和原来的监控软件有端口冲突,不能同时运行,使用工具时需要临时关闭监控软件。如果要推广到所有台站,因为各台站配置的IP、端口以及发射机频率等条件不同,还需要做到根据配置文件智能适配,生成对应的指令。多台发射机开机时间相同,同时开机对电压冲击较大,改为错开几秒开机,使整个系统稳定。
①Elliotte Rusty Harold:《Java 网络编程(第4 版)》,北京,中国电力出版社,2014,52-118。
②UllmanJ.D.:《数据库系统基础教程》,北京,机械工业出版社,2009,30-200。
③Bruce Eckel.:《Java 编程思想》,北京,机械工业出版社,2013,100-320。