我最近正在为一家设备租赁公司开发一个物联网系统,他们想监测出租设备的运行状况,如发电机,压缩机,推土机,起重机等。
我的客户提出的需求相当直接:他们想知道设备的具体位置和操作记录;他们想要知道设备位置不仅是因为设备偶尔可能被盗,也因为使用者有时将设备放到一些不应该放的地方,导致设备难以收回。
他们想要知道操作记录,因为设备使用者不一定遵循定期维护准则,并且可能一直运行设备直到崩溃。通过这个物联网系统,他们可以监控设备运行时间,并要求设备使用者在需要维护时重新启动设备,或到现场并对设备进行维护。
对于设备使用者而言,他们的工作时间通常很紧张,因此可能没有关注设备在超负荷或者超时间使用。设备使用者也希望得到一个帮助管理设备的工具,因为他们不希望自己承担破坏昂贵设备的责任。
像发电机和压缩机这样的大型设备都是由卡特彼勒、康明斯或沃尔沃等大型引擎公司提供动力。所有这些都具有CAN(控制器局域网)总线接口,因此可以直接通过CAN总线控制器来查看操作记录了解设备操作情况。
CAN总线在20世纪80年代初由德国博世公司开发,以控制其在汽车应用中的电子元件。车辆总线接口标准旨在允许微控制器和设备在没有主机的情况下相互通信。第一款在汽车上安装CAN总线的制造商是德国宝马。
CAN总线是车载诊断(OBD)-II车辆诊断标准中使用的协议之一,经销商可以通过OBD了解车辆到底出了何种故障。
虽然大多数制造商都使用CAN总线,但一些发动机制造商只使用Modbus通讯协议,Modbus以CAN总线为标准,两者非常相似。它是由Modicon开发的串行通信协议,与PLC(可编程逻辑控制器)进行通信。 不同于CAN总线可以设备之间直接通讯,Modbus具有主/主依赖架构,包括一个主设备和多达247个串联设备。
Modbus是一种开放协议,非常适用于从单个控制器监测重型设备上的多个元器件。
监控设备并不简单
随着这些设备上通讯协议的开放和公布,您认为监控和获取设备数据是件容易事。
但是你错了!
比较麻烦的是这些通讯协议只是标准化通信组件,而不是想要的数据。制造商故意使用这种通讯标准,设备制造商限制第三方访问敏感数据,让第三方难以获取。
制造商这样做也是迫不得已,最近有案例表明,黑客通过无线监控进入系统,然后控制了几款车型的制动、转向和发动机运行,这使得制造商对这些问题尤为紧张。
黑客可以进入控制总线,进而打开引擎和开车,或者更糟的是,当你在高速公路上以60英里每小时行驶时关闭你汽车的发动机。
考虑到这些威胁存在,打造专有的封闭系统似乎非常必要。但是,如果您是设备租赁公司,您将50个不同设备租赁给你的客户,希望只需一个平台就可以监控所有设备,而不需要分别登录50个设备系统分别管理。
但制造商并不愿意授予这种访问权限,因为这样可能失去对设备的控制。所以他们严密控制对API平台的访问。即使他们让您访问他们的API,他们也尽量隐藏数据的来源,也不会让您知道哪些存储器存放着哪些数据。
如果你想弄清楚这一点,你可以监控与API控件无关的东西,唯一的方法就是对数据进行抽样,然后开始尝试找出这些数值代表的含义。
例如,如果您修改引擎数据,并且您看到一个值从20的怠速状态变为越来越大的数字,然后返回到越来越小的数字,最终返回到20的怠速状态,那么您可以猜测该字段包含RPM(发动机最高转速)数据。如果您知道怠速数据,那么您可以猜测哪些字段是代表哪些,但是字段太多,几乎不可能全部进行逆向工程。
那么怎么办才好呢?
物联网系统标准化并有效控制访问
目前不同公司采用不同的系统,因此用户要将多个公司设备数据整合到物联网系统平台中并不容易,这不仅限于重型设备,其他领域也是如此,例如智能建筑领域,霍尼韦尔多年来已经制定了封闭的智能建筑管理系统,要求未经许可任何公司不能接入访问HVAC监控系统。
现在您需要的不仅仅是一个允许安全访问并获取数据的API,更是一种有效管理控制API访问的标准化方法,以便API平台识别您为安全、受信任的用户。有一些安全协议框架可供选择,比如Etherium。
虽然这些措施和方法看起来像是为数十亿的联网设置障碍,但是,我们必须有效控制对物联网系统的安全访问,否则,整个联网设备的生存能力就会大大降低,甚至崩溃。