一、概述
本项目为某市煤炭运销系统与企业内部系统接口技术。
为了提高效率及减少企业的成本。通过定义接口,实现称重数据自动从企业内部系统传递给市煤炭运销系统。这样能有效的提高用户的工作效率,并保证数据的准确性与一致性。
如上图,建设“某市煤炭运销接口”完成后,企业内部系统完成称重时,自动将称重数据通过接口服务程序,发送到市煤炭运销系统,一辆车只需要在企业内部系统中进行操作即可完成多个系统的数据保存。
二、对接方式
1.对接实现方式
市运销系统和企业内部系统属于不同制造商生产的系统,两套系统实现的技术、功能、部署的环境各不相同,要实现两个系统的称重业务数据交换,采用哪种通讯方式是首要解决的问题。
选择合适的对接实现方式,主要考虑可行性、稳定性、安全性、可维护性。
不同系统(程序)间通信的主要目的是实现多台计算机中应用程序之间的数据共享与信息交换。在不同的计算机系统中,它们之间要通过网络之间的协议才能实现数据共享与信息交换;在同一台计算机系统中,它们之间只需一定的通道就能实现数据共享与信息交换。在不同计算机系统和同一计算机系统的程序通信中,既有很多相同之处,也有各自的特点。程序间通信都要靠一定的通道(pipe)来实现,其中的通道多种多样,各俱特色。
(1)共享
在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,这便是最简单的一种数据交换方式。对于网络用户而言,只要两台终端上安装的都是windows系统,则只要设置一下目录共享,映射成网络驱动器,同样可以简单地实现数据交换。但它的缺点也是显而易见的:只能采取轮询的方式获得最新数据(效率低下),网络映射的驱动器绝对不能变动或取消(可靠性差),所以这是一种“低级”的通讯方式。
(2)WM_COPYDATA
一个应用程序向另一个应用程序传递数据时通过发送消息来实现。Windows在很大程度上依赖于消息机制,这样,只要调用SendMessage,以对方窗体的句柄作为第一个参数,以含有指向实际数据的指针结构的地址作为第二个参数,就可以把整个数据块当作消息发向另一个应用程序。使用WM_COPYDATA先创建一个文件映射的对象,将发送方的原始数据先拷贝至映射文件,然后再在接收方对该映射文件打开一个“视图”。WM_COPYDATA的不足之处在于:必须要有一个窗体来接收消息和数据(缺乏灵活性),数据在使用之前先得拷贝到一个映射文件(浪费资源)。并且这种方式要求要传递消息的程序部署在同一台计算机上。
(3)Socket 通讯
这是最常用的通讯方式。Socket通讯是两个计算机之间最基本的通讯方法,有TCP和UDP两种协议。
①TCP的特点
TCP协议是一种有连接、可靠的、面向字节流、相对比较慢、点对点的传输层协议。TCP协议适用于对可靠性要求比较高的场合。
TCP的优点是:可靠、稳定。它体现在TCP在传递数据之前,会有三次握手来建立连接;在数据传递时,采用校验和、序列号、确认应答、超时重发、流量控制、拥塞控制,为了提高性能,还采用了滑动窗口、延迟应答和捎带应答等机制;在数据传完后,会断开连接以节约系统资源。
②UDP的特点
UDP协议是一种无连接,不可靠、面向数据报、速度比较快、可实现一对一,多对一的传输层协议。UDP协议适用于对实时性有要求的场合。因为UDP不保证可靠性,所以UDP也没有重传机制,也没有拥塞机制,它只是尽最大努力交付数据。
UDP的优点:运行速度快,因为 UDP连接没有TCP的三次握手、确认应答、超时重发、流量控制、拥塞控制等机制,而且UDP是一个无状态的传输协议,所以它在传递数据时非常快。较安全,因为没有TCP的那些机制,UDP较TCP被攻击者利用的漏洞就会少一些。
图2 TCP、UDP通讯流程图
从上图能清晰的看出,TCP通信需要服务器端侦听listen、接收客户端连接请求accept,等待客户端connect建立连接后才能进行数据包的收发(recv/send)工作。
UDP则服务器和客户端的概念不明显,服务器端即接收端需要绑定端口,等待客户端的数据的到来。后续便可以进行数据的收发(recvfrom/sendto)工作。
TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP传输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此,传输连接就由三个阶段,即:连接建立、数据传送和连接释放。
在同一个局域网内,市运销系统和企业内部系统通过建立可靠的数据连接,
在企业内部系统完成称皮重、称毛重等业务时,将对应的数据实时传递个市运销系统,希望做到整个过程无需人工操作,系统自动完成。
双方系统定义好通讯方式、传输的数据格式,保证数据传输的正确性。
综上分析:运销系统对接采用网络Socket通讯方式比较合适。
有一个服务器端程序Server,内部系统和市运销系统各Client由中心服务程序负责数据通讯。如图3所示。
图3 数据通信
三、容错处理
双方系统在传输数据过程中难免出现异常情况,造成接口失败。这里暂时考虑以下几种可能的情况并提出处理意见,后续可以根据实际情况补充完善处理方法。
1.网络连接失败:在调用接口的时候,由于网络不通,造成数据不能正常传输。这样,系统提醒用户网络故障,请重试。系统应能在网络恢复后自动恢复连接。
2.反馈错误信息:市运销系统在处理数据时应数据格式错误会发生异常情况。所以,市销系统应当能够捕捉异常信息,比如“非法参数”、“用户认证失败”等,然后反馈给企业内部系统。企业内部系统在接受到这类的错误信息之后,会反映给客户。
3.网络连接正常,但是无信息反馈:这种情况下,可能是系统出现了异常,但是又没有捕捉到的情况下发生。这种情况下,系统应能够有相应机制避免或者尽快恢复通讯,例如:通过心跳检测检查通讯情况。
四、接口方法
1.企业内部系统:完成称皮重,将称重信息传递给市运销系统;
2.企业内部系统:完成称毛重,将称重信息传递给市运销系统;
3.其它情况:企业内部系统手动将数据传递给市运销系统,例如:纠正重量后重传数据;修改车牌号后重新传递数据等。传递数据格式如下表:
举例说明:
1.称皮完成时传输的数据格式
2.称毛完成时传输的数据格式
通讯协议可以选择TCP或UDP。
五、内部系统实现技术方案
1.界面调整
(1)在内部系统(过磅软件)界面增加有给按钮“发送”,用于处理因为网络或其他异常导致的数据发送失败后的二次发送,该按钮需要判断是否有需要发送的数据,如果没有,则不可用。
(2)内部系统界面增加一个红绿指示灯,绿色代表与市运销系统连接正常,红色代表断开。
(3)内部系统界面增加票号输入框,方便司磅人员输入票号
2.业务逻辑
(1)完成皮重确认后,内部系统系统自动发送数据给市运销系统,数据格式见上表;
(2)完成毛重确认后,内部系统系统自动发送数据给市运销系统,数据格式见上表;
(3)增加作废逻辑,车辆完成皮重过磅放弃提货后,需要在内部系统上刷卡,并进行作废处理,作废时,需要将数据发给市运销系统,确保将原来的皮重信息作废。
(4)如果数据由变化,比如车号等错误,需要在内部系统调出原来的皮重或者毛重信息,并重新发送数据给市运销系统,如果完成毛重则发毛重信息,如果未完成毛重,则发送皮重信息。
(5)磅秤错误处理,如果因为磅秤等原因,导致获取的重量错误,司磅人员可以重新获取重量,获取后,重新发送皮重或者毛重信息,称重步骤为修改。
(6)内部系统系统以UDP格式定时向市运销系统发送字符串“HI”,市运销系统反馈字符串“YES”,则表明通信正常,指示灯绿色,如果无应答,则指示灯红色。
(7)系统增加处理大媒种的业务逻辑。
(8)增加票号自动增加业务逻辑,即用户输入有给票号后,系统自动在下一车时,根据大媒种分类,自动将票号后面序号+1。
(9)发送成功、失败处理逻辑。数据发送后,市运销系统反馈结果,如果成功则返回“SUCCESS“,如果失败,则返回失败原因,并由内部系统向用户提示。
3.数据格式及约束
内部系统发送给市运销系统的数据主键值是提货单号(20位以内不重复字符串),市运销系统需依据该字段判断是否重复,或者修改、作废时处理那条原始数据。
具体数据格式如下:
主键(唯一标识)#票号#称重步骤#车牌号#销售类型#大煤种#小煤种#称皮时间#称毛时间#毛重(吨)#皮重(吨)#净重(吨)#车型#出境方向#单价(元)#磅秤标识#。
举例说明:
L123456789#境外票号#g#陕K12345#境外#块煤#三八块#2018-12-23 01:02:03#2018-12-23 03:04:05#48.90#20.00#28.90#解放半挂#河南#200#bc02#。
说明:
(1)数据一行,中间无换行符;
(2)两个字段间用#分割;
(3)所有数字不用单位。
六、运行效果
正式上线运行,市煤管数据及内部系统可以共享数据。
1.门房(不再)登记入场----在空车地磅过磅录入(内部系统)---自动传输到市煤管系统—--装车—-重磅打票录入(内部系统)---自动传输到市煤管系统
2.磅房不在给市煤管系统单独录入数据,即可共享数据。
3.出厂利用个系统的共同体“卡”,刷卡后调出过磅系统的数据,节省人为的过程中拿卡及刷卡的时间,提高发运效率。
4.减少工序、工作量、及补录数据的时间,加快在厂区停留流程时间和过磅的效率。增加企业运销的发运量,创造企业利益。
七、磅房窗口监控系统
设有两个地磅房共有4个窗口,车流饱和,工作量大、在每个窗口配置一台高清摄像机,查看实时的打票,过磅及票据传递等情况,做到有源可查,如有错误等能实时查看当时的细节过程,
八、煤管值班室车牌识别系统及通信设备更换
要求将完整的配置数据导入新的设备中。
在煤管值班室设立车牌识别系统在过磅的数据通过车牌实时调取至煤管系统,通过车牌识别及刷卡协带共享数据,保证在出入值班室能与煤管数据同步,较少在值班室的停留时间,保证数据的一致性,便捷性。与地磅系统对接共享,由于设备运行时间超过六年,煤矿现场的环境恶劣,为了保证正常的运销工作的畅通,现将采购值班室原有型号,华为设备更换,更换下来的设备作为备用设备。通信的上的所有配置数据将完整的导入新的设备中
九、煤管值班室道闸栏杆计数雷达控制系统
要求对接煤管系统的配置参数完全统一及计数功能。
煤管站值班室设立了道闸计数,煤管站在所有设备暂时由煤矿单位来维护更换,道闸6秒地感的故障严重导致煤矿车辆出入的数量,煤管现使用的地感系统,性能底下,故障率高,对煤矿车辆出入影响极大。利用现在的技术道闸3秒杆雷达系统更高效,故障率更低。
十、煤管矸石通道监控系统
自2018年以来,煤管主管部门对煤矿所有单位的煤泥,矸石加强管理,检查力度,要实时查看煤泥及矸石装卸情况,并要求所有煤矿单位自己设立高清摄像机,加入到煤管站监控系统。
十一、磅房语音系统
地磅房内语音系统运行多年,设备陈旧,拾音效果性能差,工作人员在车辆流量大的情况下工作强度加大,现更换一套语音系统,高拾音率,工作人员工作时更轻松。
转化果平台咨询电话:400-1817-969