以下我们以四向车模拟为例,小车的plc协议是modbus-tcp
一、组件 springboot,modbus4j( com.infiniteautomation)
二、模型
1.物模型
2.信息模型
sim #开关 switchFlag: false # 小车plc信息描述;地址块开始地址,地址长度 plc: slaveId: 1 address: 0 quantity: 5000 #小车端口,初始坐标,电量 cars: - port: 6666 power: 100 x: 1 y: 1 z: 1 #任务描述 task: #任务执行平均耗时,秒 timeTaskDone: 30 #充电速度,1格电需要多少秒 speedCharge: 10 #耗电速度,1格电需要多少秒 speedDisCharge: 30 #行走一个单元格耗时秒 speedCell: 2 #转向耗时秒 speedTurn: 4 #发生故障的平均时间 #异常 exception: expTime: 60 expCodes: -1001 -1002 #心跳 heart: #写入频次 interval: 1 # 默认写入值 writeVal: 0 三、方案设计
1. springboot启动成功后,加载信息模型设置,按照sim.cars创建小车的slave;小车心跳、日志、任务执行、充电等通过定时器实现;
2.slave实现主要通过 TcpSlave、BasicProcessImage 实现,具体不再展开