DALSA工业相机工作流程

由于种种原因,智能检测项目只分开购买了设备,打算所有的软件设备都自行研发,购买的硬件设备分别是I/O控制板、触发板、相机。

I/O控制板控制沉箱门开关,触发板控制相机开关(激光外触发),在相机拍照后则还需要编写采集程序。

由于采集程序中必需的DALSA.SaperaLT.SapClassBasic和HalconDotNet都是DLL,HalconDotNet还好说,跟opencv一样都是图像处理的,opencv都有jar包版,那halcon应该也有。但是DALSA.SaperaLT.SapClassBasic这个就难办了,因为这家德国工业相机制造商,只提供了dll版本的开发库,找遍了网上也没有jar包版本,考虑到内部结构不复杂,用JNative跨平台开发阻力太大,所以决定采集程序部分用C#来执行,实属无奈之举。

其他的大部分485串口控制程序已经由JAVA写好,当初也费了不少力气,也不想再迁移至C#平台。

这样一来整个流程就拆成了几分,分别在java和C#两个平台上执行。

采集线性流程如下:

1.相机初始化(常态不循环),只在控制台开启时执行一次,包括加载配置文件------C#

2.从redis缓存获取车辆数据,并针对轨道区段和偏移量进行判断,执行评率为500ms一次------java

3.如果符合条件,串口控制I/O板打开沉箱门------java

4.执行Grab()函数开始采集------C#

5.利用halcon从内存中获取裸数据------C#

6.串口发送速度信号(W20.0km/hd),控制触发板,通过外触发方式启动相机,并开始拍照------java

7.发送TTL信号࿰

你可能感兴趣的:(C#,工业协议开发,日常杂项,java,c#,redis)