嵌入式PLC的接入设备通信协议帧格式信息远程确定方法转让专利

申请号 : CN201710639474.4

文献号 : CN107479531B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邬惠峰陈佰平严义

申请人 : 杭州电子科技大学

摘要 :

本发明提供一种嵌入式PLC的接入设备通信协议帧格式信息远程确定方法。所述方法包括:获取测试帧;向嵌入式PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息。本发明实现了对嵌入式PLC的接入设备通信协议帧格式信息的远程确定,提高了确定帧格式信息的效率。

权利要求 :

1.一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法,应用于开发主机,其特征在于,包括:获取测试帧;

向嵌入式可编程控制器PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;

在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;

若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息;

其中,在所述根据所述测试帧确定正确的帧格式信息之后,还包括:获得外部输入的通信协议模型,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据所述正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数;

编译所述通信协议模型获取可执行代码,并将所述可执行代码发送至所述嵌入式PLC。

2.根据权利要求1所述的方法,其特征在于,还包括:若从所述嵌入式PLC没有获取到正确的测试结果,则生成错误提示信息,执行所述获取测试帧。

3.根据权利要求1所述的方法,其特征在于,在所述获得外部输入的通信协议模型之后,还包括:根据所述通信协议模型获取可识别调试源码;

对所述可识别调试源码进行调试获得调试协议帧,并将所述调试协议帧发送至所述嵌入式PLC;

接收并根据所述嵌入式PLC发送的应答信息获得调试结果。

4.根据权利要求3所述的方法,其特征在于,所述根据所述通信协议模型获取可识别调试源码,包括:从所述通信协议模型中获取所述N个第一类子模型;

获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型。

5.根据权利要求1所述的方法,其特征在于,在所述向嵌入式PLC发送所述测试帧之前,还包括:获取端口配置信息,根据所述端口配置信息设置端口初始化模型得到设置后的端口初始化模型,其中,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址;

向所述嵌入式PLC发送所述设置后的端口初始化模型。

6.一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法,应用于嵌入式可编程控制器PLC,其特征在于,包括:接收开发主机发送的测试帧;

发送所述测试帧至所述接入设备;

接收所述接入设备发送的测试结果,并将所述测试结果发送至所述开发主机,所述测试结果为所述接入设备根据所述测试帧反馈的结果;

其中,在所述将所述测试结果发送至所述开发主机之后,还包括:接收并加载所述开发主机发送的可执行代码,其中,所述可执行代码为开发主机对通信协议模型编译获得的代码,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数。

7.根据权利要求6所述的方法,其特征在于,在所述将所述测试结果发送至所述开发主机之后,还包括:接收所述开发主机发送的调试协议帧,并将所述调试协议帧发送至所述接入设备,其中,所述接入设备根据所述调试协议帧反馈应答信息;

接收所述应答信息,并将所述应答信息发送至所述开发主机。

8.根据权利要求6所述的方法,其特征在于,在所述接收开发主机发送的测试帧之前,还包括:接收所述开发主机发送的设置后的端口初始化模型,并根据所述设置后的端口初始化模型对端口初始化配置;

其中,所述设置后的端口初始化模型为写入端口配置信息后的端口初始化模型,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址。

说明书 :

嵌入式PLC的接入设备通信协议帧格式信息远程确定方法

技术领域

[0001] 本发明涉及工业控制技术,尤其涉及一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法。

背景技术

[0002] 为了提高程序的开发效率,充分结合可编程控制器(Programmable Logic Controller,PLC)和专用控制器的优势,嵌入式PLC技术迅速发展起来。嵌入式PLC是对专用控制器采用PLC图形化的开发手段,充分利用了现有嵌入式处理器的强大处理功能,按需定制各类专用控制器,并采用图形化开发平台对专用控制器进行软件开发。即具备了专用控制器可定制的特点,又具备了PLC图形化的开发手段。现有的嵌入式PLC广泛用作监控系统中的监控主机,并通过接口或总线的方式将各类智能设备接入嵌入式PLC。接入的智能设备例如门禁、空调、UPS、油机、温湿度。这些智能设备与嵌入式PLC之间需要通过通信协议进行监视或控制信息的交互。
[0003] 现有的监控系统中,接入嵌入式PLC的智能设备根据类型或型号的不同,可能都对应不同的通信协议。现有的监控系统中所有的通信协议都存放在作为监控主机的嵌入式PLC内,在嵌入式PLC接入新设备时根据实际使用的设备情况进行协议配置,因此要求技术人员下站进行端口初始化、协议验证和编写等现场作业。
[0004] 然而,随着现代无线通信事业的迅猛发展,大量监控系统不断涌现及扩容建设,嵌入式PLC的安装地点相对分布广泛且相互距离较远,现有的嵌入式PLC与接入设备的通信协议构造方式效率低下,使得新设备的接入困难。

发明内容

[0005] 第一方面,本发明提供一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法,应用于开发主机,包括:
[0006] 获取测试帧;
[0007] 向嵌入式可编程控制器PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;
[0008] 在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;
[0009] 若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息。
[0010] 可选地,还包括:
[0011] 若从所述嵌入式PLC没有获取到正确的测试结果,则生成错误提示信息,执行所述获取测试帧。
[0012] 可选地,在所述根据所述测试帧确定正确的帧格式信息之后,还包括:
[0013] 获得外部输入的通信协议模型,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据所述正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数;
[0014] 编译所述通信协议模型获取可执行代码,并将所述可执行代码发送至所述嵌入式PLC。
[0015] 可选地,在所述获得外部输入的通信协议模型之后,还包括:
[0016] 根据所述通信协议模型获取可识别调试源码;
[0017] 对所述可识别调试源码进行调试获得调试协议帧,并将所述调试协议帧发送至所述嵌入式PLC;
[0018] 接收并根据所述嵌入式PLC发送的应答信息获得调试结果。
[0019] 可选地,所述根据所述通信协议模型获取可识别调试源码,包括:
[0020] 从所述通信协议模型中获取所述N个第一类子模型;
[0021] 获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型。
[0022] 可选地,在所述向嵌入式PLC发送所述测试帧之前,还包括:
[0023] 获取端口配置信息,根据所述端口配置信息设置端口初始化模型得到设置后的端口初始化模型,其中,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址;
[0024] 向所述嵌入式PLC发送所述设置后的端口初始化模型。
[0025] 第二方面,本发明还提供一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法,应用于嵌入式PLC,包括:
[0026] 接收开发主机发送的测试帧;
[0027] 发送所述测试帧至所述接入设备,
[0028] 接收所述接入设备发送的测试结果,并将所述测试结果发送至所述开发主机,所述测试结果为所述接入设备根据所述测试帧反馈的结果。
[0029] 可选地,在所述将所述测试结果发送至所述开发主机之后,还包括:
[0030] 接收并加载所述开发主机发送的可执行代码,其中,所述可执行代码为开发主机对通信协议模型编译获得的代码,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数。
[0031] 可选地,在所述将所述测试结果发送至所述开发主机之后,还包括:
[0032] 接收所述开发主机发送的调试协议帧,并将所述调试协议帧发送至所述接入设备,其中,所述接入设备根据所述调试协议帧反馈应答信息;
[0033] 接收所述应答信息,并将所述应答信息发送至所述开发主机。
[0034] 可选地,在所述接收开发主机发送的测试帧之前,还包括:
[0035] 接收所述开发主机发送的设置后的端口初始化模型,并根据所述设置后的端口初始化模型对端口初始化配置;
[0036] 其中,所述设置后的端口配置模型为写入端口配置信息后的端口配置模型,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址。
[0037] 本发明提供的方法通过获取测试帧;向嵌入式PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息,实现了对嵌入式PLC的接入设备通信协议帧格式信息的远程确定,用户可以在开发主机上对每个嵌入式PLC的多个接入设备进行帧验证,根据反馈的测试结果可以对帧格式进行修改调整,提高了确定帧格式信息的效率。

附图说明

[0038] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图逐一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039] 图1为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0040] 图2为一种开发主机与嵌入式PLC之间的通信系统示例;
[0041] 图3为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0042] 图4为本发明提供的再一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0043] 图5为一种通信协议模型的示例;
[0044] 图6为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0045] 图7为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0046] 图8为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0047] 图9为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0048] 图10为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0049] 图11为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图;
[0050] 图12为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置;
[0051] 图13为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置;
[0052] 图14为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置;
[0053] 图15为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置;
[0054] 图16为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置;
[0055] 图17为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。

具体实施方式

[0056] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 图1为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。可选地,该方法的执行主体是开发主机,该开发主机可以是计算机、服务器等,在此不做限制。
[0058] 如图1所示的实施例包括:
[0059] S110,获取测试帧。
[0060] 所述测试帧可以是用户的外部输入的测试帧,也可以是根据用户外部输入的帧格式信息而生成测试帧,还可以是根据用户的外部输入在已有的资源库中选择的测试帧,本发明不限于此。所述测试帧可以是包含测试指令的协议帧,接入设备接收到包含所述测试指令的协议帧,则返回测试结果。
[0061] 表1为一种帧格式信息实施例。
[0062] 所述测试帧可以是用户根据接入设备的使用手册规定的可用帧格式信息而确定的。如表1所示的帧格式信息包括:起始码(start code information,SOI)、通信协议版本号(version number,VER)、接入设备地址(Access device address,ADR)、接入设备标识码(customer identification,CID1)、控制标识码(code identification,CID2)、命令信息的长度和校验(The length and check of the command information,LENGTH)、指令信息(commandinfomation,INFO)、校验和码(checksum code,CHECKSUM)、结束码(epilog codeinformation,EOI)。所述测试帧中的指令信息可以为所述测试指令。
[0063] 以空调作为一种接入设备的实施例,所述VER是业内协议的版本号,预设为21H。ADR是空调的地址,例如空调地址为1,转换为十六进制数位01H。根据业内协议,CID1的字段固定为60H(60H为“分散空调类型”的代码)。CID2在作命令帧时,是控制标识码;作为响应信息时,是返回码RTN。
[0064] 表1
[0065]
[0066] S120,向嵌入式PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果。
[0067] 具体地,S120可以是开发主机与嵌入式PLC、接入设备之间,通过数据驱动的方法进行通信,实现测试帧的收发测试,从而验证所述测试帧的帧格式是否符合接入设备的通信协议要求。
[0068] 图2为一种开发主机与嵌入式PLC之间的通信系统示例。该系统包括:开发主机、嵌入式PLC、接入设备。所述开发主机通过以太网连接所述嵌入式PLC,所述嵌入式PLC通过通信端口连接所述接入设备。所述嵌入式PLC中包含多个存储区,例如所示的X区、Y区和D区,其中,所述D区中至少包括读缓冲区(Read Buffer,RB)和写缓冲区(Write Buffer,WB)。嵌入式的通信端口配置有端口读缓冲地址1和端口写缓冲地址1。接入设备配置有端口读缓冲地址2和端口写缓冲地址2。
[0069] 所述嵌入式PLC的通信端口在端口初始化过程中,将端口读缓冲地址1配置为所述D区的RB的地址;将端口写缓冲地址1配置为所述D区的WB的地址。由此,所述通信端口从接入设备接收到的数据直接存入所述D区的RB的地址,而所述D区的WB更新的数据也将被所述通信端口写入对应的接入设备。在如图2所示的一种向嵌入式PLC发送所述测试帧的实现方式中,开发主机通过以太网与嵌入式PLC通信,且开发主机通过所述以太网的连接读取或设置嵌入式PLC的D区中的数据。
[0070] 可选地,所述开发主机包含存储区,所述存储区中预设有写数据缓冲区和读数据缓冲区。所述开发主机获取所述测试帧后填入所述写数据缓冲区中,另外,开发主机通过以太网将测试帧下发到所述嵌入式PLC的WB中。在所述嵌入式PLC中,通信端口根据所述测试帧中包含的接入设备地址描述,将所述WB中的测试帧发送给接入设备。若所述测试帧的帧格式信息都正确,则所述接入设备能够正确接收到所述测试帧并解析获取所述测试帧中的测试指令等信息。
[0071] 所述接入设备可以包括门禁、空调、智能供电模块、油机、温湿度感测装置、电梯系统或工业自动化机器。
[0072] S130,在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻。
[0073] 所述第一时间根据具体的网络情况、嵌入式PLC与接入设备通信的速率和情况来确定,例如可以设所述第一时间为10s。
[0074] S130具体包含了确定是否从所述嵌入式PLC获取到测试结果,以及确定获取到的测试结果是否正确。
[0075] 在各线路正确接线、端口配置正确、操作规范的情况下,S130的一种实现方式可以是:在第一时间(例如10s)内,每隔第二时间(例如0.5s)向所述嵌入式PLC的RB询问一次是否有数据更新。若第一时间内嵌入式PLC的RB有更新的数据,则获取到开发主机的读数据缓冲区中,开发主机进一步确定获取到的测试结果是否正确,若正确则进入S141,若错误则继续每隔第二时间向所述嵌入式PLC的RB询问一次是否有数据更新,直到获取到正确的测试结果或在第一时间结束时确定所述测试帧的帧格式信息错误。若在第一时间结束时确定所述测试帧的帧格式信息错误,则生成错误提示信息,执行所述获取测试帧,并向用户显示该测试帧的帧格式信息为错误的提示信息。若第一时间内嵌入式PLC的RB没有更新的数据,则确定所述测试帧的帧格式信息错误,生成错误提示信息,执行所述获取测试帧,并向用户显示该测试帧的帧格式信息为错误的提示信息。
[0076] 其中,所述每隔第二时间向所述嵌入式PLC的RB查看一次是否有数据更新的一种实现方式可以是:每隔所述第二时间,开发主机向嵌入式PLC发送一读命令,所述读命令包括所述嵌入式PLC的RB的地址以及读取数据长度。所述嵌入式PLC响应所述读命令检索RB中是否存储有满足所述读取数据长度的数据,若存在则发送给所述开发主机。
[0077] 所述每隔第二时间向所述嵌入式PLC的RB查看一次是否有数据更新的另一种实现方式可以是:每隔所述第二时间,开发主机向嵌入式PLC发送一读命令,所述读命令包括所述嵌入式PLC的RB的地址。所述嵌入式PLC响应所述读命令检索RB中是否存储有数据,若有数据则发送给所述开发主机并清空RB中的存储。
[0078] 若所述测试帧的帧格式信息都正确,则所述接入设备根据所述测试帧获得正确的测试结果,并将该正确的测试结果反馈给所述嵌入式PLC。所述嵌入式PLC的通信端口接到所述正确的测试结果时,根据端口读缓冲地址1将所述正确的测试结果读取至所述D区的RB中。所述开发主机监测到所述RB中更新了数据则获取所述数据,开发主机确定更新的数据为正确的测试结果。
[0079] S141,若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确认正确的帧格式信息。
[0080] 所述测试结果是否正确,可以是由开发主机自动根据嵌入式PLC是否有反馈信息来确定,或自动根据嵌入式PLC反馈的信息内容是否正确来确定;也可以是由用户根据嵌入式PLC是否有反馈信息来确定,或根据嵌入式PLC反馈的信息内容是否正确来确定。
[0081] 所述确定正确的帧格式信息可以是开发主机获取生成测试帧所应用的帧格式为所述正确的帧格式信息,开发主机在确定正确的帧格式信息之后可以是保存入存储器,也可以是开发主机将正确的帧格式信息向用户显示或发送到其他终端,本发明不限于此。
[0082] 本实施例提供的方法通过获取测试帧;向嵌入式PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息,实现了对嵌入式PLC的接入设备通信协议帧格式信息的远程确定,用户可以在开发主机上对每个嵌入式PLC的多个接入设备进行帧验证,根据反馈的测试结果可以对帧格式进行修改调整,提高了确定帧格式信息的效率。
[0083] 图3为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。表2为返回码的一种实施例。
[0084] 在图1所示实施例的基础上,图3所示的实施例还包括:
[0085] S142,若从所述嵌入式PLC没有获取到正确的测试结果,则生成错误提示信息,执行所述S110。
[0086] 所述没有获取到正确的测试结果可以是没有获取到返回信息,也可以是获取到异常的返回信息,例如获得的测试结果中以返回码描述异常情况。接入设备根据接收到的测试帧反馈测试结果,测试结果包含所述返回码,返回码的一种实施例参见所述表2。例如:所述测试结果中包含的返回码为00H时,所述测试结果为正确的测试结果,其他返回码都为错误的测试结果,在此不做限制,也可以由其他代码标识。
[0087] 在获取到错误的测试结果之后,还可以向用户显示该测试帧的帧格式信息为错误的错误提示信息,并在该错误提示信息中写入所述返回码,或写入根据所述返回码确定的错误类型信息,所述错误类型信息可以包括“VER错误”、“CHECKSUM错误”、“CID2无效”或、“无效数据”。其中,所述“无效数据”对应在关机状态下进行“开机”之外的参数设置,或开机状态下设置的参数超出范围,或数据帧格式错误。
[0088] 表2
[0089]返回码 表示意义
00H 帧格式信息正确时反馈
01H VER错误时反馈
02H CHECKSUM错误时反馈
04H CID2无效时反馈
06H 无效数据时反馈
[0090] 执行所述S110具体可以是,用户在参考了所述提示信息后,根据所述错误类型信息修改了原帧格式信息,以新的帧格式信息生成一新的测试帧。再次执行S110直至获取正确的测试结果,根据正确的测试结果对应的测试帧确定正确的帧格式信息。
[0091] 本实施例通过若从所述嵌入式PLC没有获取到正确的测试结果,则生成错误提示信息,执行所述S110,实现了在帧验证错误时获取新的测试帧,用户能够获知帧格式信息有错,则更换原本的帧格式信息重新进行验证,本实施例通过向用户提供错误提示信息,进一步提高了确定帧格式信息的效率。
[0092] 图4为本发明提供的再一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。
[0093] 在图1或图3所示实施例的基础上,图4所述的实施例在S141之后,还包括:
[0094] S151,获得外部输入的通信协议模型,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据所述正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数。
[0095] S152,编译所述通信协议模型获取可执行代码,并将所述可执行代码发送至所述嵌入式PLC。
[0096] 在确定了正确的测试结果对应的测试帧后,用户依据所述测试帧使用的帧格式信息进行通信协议模型的编辑。所述通信协议模型可以具体为以梯形图语言编写的PLC程序代码,并在图形语言中嵌入了C语言程序。所述第一类子模型可以为包含有图形标记和协议帧的C语言程序。在通信协议模型的第一类子模型中写入了M个协议帧,每个协议帧都是依据正确的帧格式信息编辑的,M为大于或等于1的整数。
[0097] 图5为一种通信协议模型的示例。图5所示的通信协议模型中,X1、X2、X3、X4、X5、X6都为触发条件。在X1触发条件满足后X1闭合或X2、X3触发条件满足后,然后在X4或X5触发条件满足时检测X6是否满足,若X6也满足时,发送数据帧。
[0098] 开发主机对获得的所述通信协议模型进行编译获得用于在嵌入式PLC中运行的可执行代码,并将可执行代码下载到所述嵌入式PLC中,如果所述通信协议模型编辑的过程中按标准实施,所述嵌入式PLC可以正常运行所述通信协议模型。
[0099] 本实施例通过获得外部输入的通信协议模型,并编译通信协议模型获得可执行代码,发送可执行代码至嵌入式PLC,完成了嵌入式PLC针对接入设备的通信协议模型的远程构建。
[0100] 图6为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。在图4所示实施例的基础上,图6所示的实施例在所述S151之后,还包括调试过程:
[0101] S160,根据所述通信协议模型获取可识别调试源码。
[0102] S170,对所述可识别调试源码进行调试获得调试协议帧,并将所述调试协议帧发送至所述嵌入式PLC。
[0103] S180,接收并根据所述嵌入式PLC发送的应答信息获得调试结果。
[0104] 所述开发主机可以是电脑(personal computer,PC)端,现有技术中已有多种PC端开发软件,然而这些开发软件无法识别由图形语言编写的PLC程序中的图元和图形标记,无法对包含有图形语言的所述通信协议模型进行直接调试。本实施例根据所述通信协议模型获取所述可识别调试源码,所述可识别调试源码可以是用C语言编写的与设备通信的协议代码,其中可以包含的图形标记被开发主机中预设的嵌入式PLC工具识别并转换成对应的可识别变量。在开发主机端使用常见的C语言程序开发软件对可识别调试源码编译和运行。由此对所述可识别调试源码进行单步、断点、变量修改等调试。
[0105] 在上述实施例中,S160进一步可以包括:从所述通信协议模型中获取所述N个第一类子模型;获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型。
[0106] 具体地,可以是开发主机在所述通信协议模型中将由C语言编辑的第一子模型提取出来,例如图5中的“发送数据帧”功能块,由此实现对所述通信协议模型中第一类子模型的调试准备。
[0107] 所述第一类子模型中包括图形标记,比如触点X0、X1等,由于常见的PC端开发软件包含的C语言程序开发软件不能识别图形标记,开发主机侧的嵌入式PLC工具需要预先将这些图形标记转换为可识别的信息。所述可识别的信息可以是符合C语言编程标准的可识别变量。所述预设的对应关系包括变量与图形标记之间的一一对应关系。
[0108] 开发主机在调试过程中,将所述可识别调试源码运行发出的调试协议帧发送给嵌入式PLC,并可对协议帧的构成、发送过程、协议帧应答帧以及嵌入式PLC运行状态进行查看、编辑等调试。所述调试协议帧是指调试过程中发出的用于调试的协议帧。
[0109] 在所述对应关系的一种实现方式中,所述图形标记的数据存储于图2中嵌入式PLC的存储单元中,所述可识别变量的数据存储于开发主机预设的存储区中,所述对应关系的转换实现了嵌入式PLC存储区替换为开发主机的存储单元且相互映射。具体地,嵌入式PLC存储区的X区、Y区、D区分别与开发主机的Xm区、Ym区和Dm区相互映射。所述相互映射,是指嵌入式PLC存储区的X区、Y区或D区数据变化时向开发主机发送更新的数据;或则开发主机中Xm区、Ym区或Dm区数据变化时向嵌入式PLC发送更新的数据。
[0110] 在所述对应关系中,D区和Dm区的映射进一步包括,所述Dm区包括读数据映射区RBm和写数据映射区WBm,RBm与RB数据映射,WBm与WB数据映射;开发主机运行可识别调试源码时,发送的协议帧写入到WBm,WBm的新数据通过以太网发送到WB;嵌入式PLC检测到WB数据有变化,将新数据(即调试协议帧)发送给接入设备。
[0111] WBm中更新的数据通过以太网发送给所述WB的过程具体包括:所述开发主机根据以太网传输协议将WBm中更新的数据封装打包,将封装打包好的数据通过以太网传输至所述嵌入式PLC,嵌入式PLC从封装打包好的数据中获取WBm中更新的数据存入所述WB中。
[0112] 本实施例通过从所述通信协议模型中获取所述N个第一类子模型;获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型,实现了图形语言程序到C语言程序的转换,将不可识别的通信协议模型转换为可识别调试源码。
[0113] 图7为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。在图1~图6所示任一实施例的基础上,图7所示的实施例在所述S120之前,还包括端口初始化模型设置过程:
[0114] S111,获取端口配置信息,根据所述端口配置信息设置端口初始化模型得到设置后的端口初始化模型,其中,所述端口配置信息包括端口读缓冲地址1和端口写缓冲地址1,所述端口读缓冲地址1为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址1为所述嵌入式PLC预设写缓冲区的地址。
[0115] S112,向所述嵌入式PLC发送所述设置后的端口初始化模型。
[0116] 所述端口配置信息还包括通信速率、数据位、停止位等端口描述。所述嵌入式PLC由所述设置后的端口初始化模型进行通信端口的初始化配置。所述端口初始化模型具体为一用于配置通信端口的程序代码,所述根据所述端口配置信息设置端口初始化模型的方法具体可以为将所述端口配置信息写入所述用于配置通信端口的硬件寄存器中。
[0117] 本实施例通过获取端口配置信息,根据所述端口配置信息设置端口初始化模型得到设置后的端口初始化模型,其中,所述端口配置信息包括端口读缓冲地址1和端口写缓冲地址1,所述端口读缓冲地址1为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址1为所述嵌入式PLC预设写缓冲区的地址;向所述嵌入式PLC发送所述设置后的端口初始化模型。确定了所述嵌入式PLC的通信端口的读写地址,以设置后的端口初始化模型实现了对嵌入式PLC的通信端口初始化配置。
[0118] 图8为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。图8所示方法的执行主体可以是嵌入式PLC。如图8所示的实施例包括:
[0119] S810,接收开发主机发送的测试帧,所述测试帧为包括测试指令的协议帧。
[0120] 所述测试帧的帧格式信息参见表1。嵌入式PLC的D区为一预设的读写缓冲区,包括读缓冲区(Read Buffer,RB)和写缓冲区(Write Buffer,WB)。其中,所述嵌入式PLC的通信端口在端口初始化过程中,将端口读缓冲地址1配置为所述D区的读缓冲区(Read Buffer,RB)的地址;将端口写缓冲地址1配置为所述D区的写缓冲区(Write Buffer,WB)的地址。由此,所述通信端口从接入设备接收到的数据直接存入所述D区的RB的地址,而所述D区的WB更新的数据也将被所述通信端口写入对应的接入设备。
[0121] 所述开发主机包含有存储区,所述存储区中预设有写数据缓冲区和读数据缓冲区。开发主机获取所述测试帧后填入所述写数据缓冲区中,开发主机通过网络下发到所述嵌入式PLC,嵌入式PLC从开发主机接收所述测试帧,并写入WB中。
[0122] S820,发送所述测试帧至所述接入设备。
[0123] 在所述嵌入式PLC中,通信端口将所述WB中的测试帧发送出去;所述测试帧中包含了所述接入设备地址,与所述结束设备地址相等的接入设备会对所述测试帧进行处理。若所述测试帧的帧格式信息都正确,则所述接入设备能够正确解析和获取所述测试帧中的测试指令等信息。
[0124] S830,接收所述接入设备发送的测试结果,并将所述测试结果发送至所述开发主机,所述测试结果为所述接入设备根据所述测试帧反馈的结果。
[0125] 具体地,接入设备根据测试帧的帧格式是否正确,返回相应的返回码,返回码的类型参见表2。所述测试结果中包含的返回码为00H时,所述测试结果为正确的测试结果,其他返回码都为错误的测试结果。
[0126] 将所述测试结果发送至所述开发主机的一种实现方式可以是:在第一时间(例如10s)内,开发主机每隔第二时间(例如0.5s)向所述嵌入式PLC的RB询问一次是否有数据更新。
[0127] 若第一时间内嵌入式PLC的RB有更新的数据,则获取到开发主机的读数据缓冲区RBm中。
[0128] 若第一时间内嵌入式PLC的RB没有更新的数据,则开发主机确定所述测试帧的帧格式信息错误。
[0129] 其中,所述每隔第二时间向所述嵌入式PLC的RB查看一次是否有数据更新的一种实现方式可以是:每隔所述第二时间,开发主机向嵌入式PLC发送一读命令,所述读命令包括所述嵌入式PLC的RB的地址以及读取数据长度。所述嵌入式PLC响应所述读命令,将RB中读取范围内的数据发送给所述开发主机;开发主机存储数据到RBm并对数据进行检查和进一步调试。
[0130] 所述每隔第二时间向所述嵌入式PLC的RB查看一次是否有数据更新的另一种实现方式可以是:每隔所述第二时间,开发主机向嵌入式PLC发送一读命令,所述读命令包括所述嵌入式PLC的RB的地址。所述嵌入式PLC响应所述读命令检索RB中是否有新数据,若有新数据则发送给所述开发主机并清空RB中的存储。
[0131] 若所述测试帧的帧格式信息都正确,则所述接入设备根据所述测试帧获得正确的测试结果,并将该正确的测试结果反馈给所述嵌入式PLC。所述嵌入式PLC的通信端口接到所述正确的测试结果时,根据端口读缓冲地址1将所述正确的测试结果读取至所述D区的RB中。所述开发主机监测到所述RB中更新了数据则获取所述新数据,开发主机进一步可以确定新数据是否为正确的测试结果。
[0132] 本实施例通过接收开发主机发送的测试帧;发送所述测试帧至所述接入设备,接收所述接入设备发送的测试结果,并将所述测试结果发送至所述开发主机,所述测试结果为所述接入设备根据所述测试帧反馈的结果,实现了对嵌入式PLC的接入设备通信协议帧格式信息的远程确定,用户可以在开发主机上对每个嵌入式PLC的多个接入设备进行帧验证,根据反馈的测试结果可以对帧格式进行修改调整,提高了确定帧格式信息的效率。
[0133] 图9为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。在图8的基础上,图9所示的实施例在所述S830之后,还包括:
[0134] S841,接收并加载所述开发主机发送的可执行代码,其中,所述可执行代码为开发主机对通信协议模型编译获得的代码,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数
[0135] 本实施例通过接收并加载所述开发主机发送的可执行代码,实现了对嵌入式PLC的接入设备通信协议远程构造,提高了通信协议构造的效率。
[0136] 图10为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。在图8或图9所示任一实施例的基础上,图10所示的实施例在所述S830之后,还包括调试过程:
[0137] S842,接收所述开发主机发送的调试协议帧,并将所述调试协议帧发送至所述接入设备,其中,所述接入设备根据所述调试协议帧反馈应答信息。
[0138] 具体地,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据正确的帧格式信息编辑的协议帧;开发主机从通信协议模型中获取所述N个第一类子模型;获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型;在对可识别源码调试过程中发出所述调试协议帧。开发主机在调试过程中,将所述通信协议模型中内嵌的协议帧发送给嵌入式PLC。
[0139] 其中,嵌入式PLC中存储区包含D区,D区还与所述开发主机的Dm区数据映射。所述Dm区包括读数据映射区RBm和写数据映射区WBm,D区包括读数据映射区RBm和写数据映射区WBm,RBm与RB数据映射,WBm与WB数据映射。
[0140] 其中,所述WBm与WB实现数据映射的方式包括:开发主机在更新WBm数据时,向嵌入式PLC发送新数据以更新WB的数据。
[0141] WBm中更新的数据通过以太网发送给所述WB的过程具体包括:所述开发主机根据以太网传输协议将WBm中更新的数据封装打包,将封装打包好的数据通过以太网传输至所述嵌入式PLC,嵌入式PLC从封装打包好的数据中获取WBm中更新的数据存入所述WB中。WB中存入的数据通过嵌入式PLC的通信端口发送给接入设备。在调试过程中,所述WBm中更新的数据和WB中存入的数据就是所述调试协议帧。
[0142] S843,接收所述应答信息,并将所述应答信息发送至所述开发主机。
[0143] 接入设备发送给嵌入式PLC的数据由通信端口写入所述RB中,RB更新的数据通过以太网写入所述RBm。在调试过程中,所述RBm更新的数据就是接入设备根据所述调试协议帧反馈的应答信息。本实施例通过所述RBm与所述RB数据映射实现所述S843。开发主机可以通过软件开发环境中的调试命令,控制调试协议帧的发送过程以及应答信息的接收过程,从而可以实现对通信协议模型的调试。
[0144] 调试过程可以是在S830之后执行,也可以是在所述S841之后发现嵌入式PLC无法正常运行所述通信协议模型时执行,本发明不限于此。
[0145] 本实施例中嵌入式PLC通过接收所述开发主机发送的调试协议帧,并将所述调试协议帧发送至所述接入设备,其中,所述接入设备根据所述调试协议帧反馈应答信息;接收所述应答信息,并将所述应答信息发送至所述开发主机。实现了开发主机侧调试过程的调试协议帧发送、接收和处理,进而实现在开发主机对可识别调试源码的调试。
[0146] 图11为本发明提供的又一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定方法流程图。在图8~图10任一所示实施例的基础上,图11所示的实施例在所述S810之前,还包括:
[0147] S800,接收所述开发主机发送的设置后的端口初始化模型,并根据所述设置后的端口初始化模型对端口初始化配置;
[0148] 其中,所述设置后的端口配置模型为写入端口配置信息后的端口配置模型,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址。
[0149] 所述端口配置信息还包括通信速率、数据位、停止位等端口描述。所述嵌入式PLC由所述端口初始化模型进行通信端口的初始化配置。所述端口初始化模型具体为一用于配置通信端口的程序代码。
[0150] 本实施例通过接收所述开发主机发送的端口初始化模型,并根据所述端口初始化程序对端口初始化配置,设置了所述嵌入式PLC的通信端口的读写地址,实现了对嵌入式PLC的通信端口初始化配置。
[0151] 图12为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。如图12所述的装置包括:
[0152] 第一获取模块11,用于获取测试帧;
[0153] 第一发送模块12,用于向嵌入式PLC发送所述测试帧,其中,所述测试帧由所述嵌入式PLC发送给接入设备,所述接入设备根据所述测试帧反馈测试结果;
[0154] 第一接收模块13,用于在第一时间内,确定是否从所述嵌入式PLC获取到正确的所述测试结果,其中,所述第一时间的起始时刻为完成向所述嵌入式PLC发送所述测试帧的时刻;
[0155] 第二获取模块14,用于若从所述嵌入式PLC获取到正确的测试结果,则根据所述测试帧确定正确的帧格式信息。
[0156] 图12所示实施例的装置对应地可用于执行图1所示方法实施例中开发主机执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0157] 图13为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。在图12所示实施例的基础上,如图13所示的实施例还包括:
[0158] 错误提示模块15,用于若从所述嵌入式PLC没有获取到正确的测试结果,则生成错误提示信息。
[0159] 图13所示实施例的装置对应地可用于执行图1或图3所示方法实施例中开发主机执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0160] 图14为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。在图12或图13所示实施例的基础上,如图14所示的实施例还包括:
[0161] 第三获取模块16,用于在所述根据所述测试帧确定正确的帧格式信息之后,获得外部输入的通信协议模型,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据所述正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数。
[0162] 编译模块18,用于编译所述通信协议模型获取可执行代码。
[0163] 所述第一发送模块12,还用于将所述可执行代码通过网络发送至所述嵌入式PLC。
[0164] 图14所示实施例的装置对应地可用于执行图1或图3或图4所示方法实施例中开发主机执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0165] 图15为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。在图14所示实施例的基础上,如图15所示的实施例还包括:
[0166] 调试模块17,用于在所述获得外部输入的通信协议模型之后,根据所述通信协议模型获取可识别调试源码;对所述可识别调试源码进行调试获得调试协议帧。
[0167] 所述第一发送模块12,还用于将所述调试协议帧发送至所述嵌入式PLC。
[0168] 所述第一接收模块13,还用于接收并根据所述嵌入式PLC发送的应答信息获得调试结果。
[0169] 在上述实施例中,所述调试模块17进一步用于:从所述通信协议模型中获取所述N个第一类子模型;获取所述可识别调试源码,所述可识别调试源码为由预设的可识别变量代替所述图形标记的N个第一类子模型。
[0170] 所述调试模块17从所述通信协议模型中提取出所述第一类子模型;根据预设的对应关系,将所述第一类子模型中所述图形标记替换为可识别变量;获取图形标记已替换为可识别变量的第一类子模型为所述可识别调试源码。
[0171] 在上述实施例中,所述第一获取模块11还用于:在所述向嵌入式PLC发送所述测试帧之前,获取端口配置信息,根据所述端口配置信息设置端口初始化模型得到设置后的端口初始化模型,其中,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址;
[0172] 所述第一发送模块12还用于:向所述嵌入式PLC发送所述设置后的端口初始化模型。
[0173] 图15所示实施例的装置对应地可用于执行图1、图3、图4、图6或图7所示方法实施例中开发主机执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0174] 图16为本发明提供的一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。在如图16所示的实施例中,包括:
[0175] 第二接收模块21,用于接收开发主机发送的测试帧。
[0176] 发送模块22,用于发送所述测试帧至所述接入设备,并将测试结果发送至所述开发主机,所述测试结果为所述接入设备根据所述测试帧反馈的结果。
[0177] 第三接收模块23,用于接收所述接入设备发送的所述测试结果。
[0178] 图16所示实施例的装置对应地可用于执行图8所示方法实施例中嵌入式PLC执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0179] 图17为本发明提供的另一种嵌入式PLC的接入设备通信协议帧格式信息的远程确定装置。在图16所示实施例的基础上,如图17所示的实施例还包括程序加载模块24;
[0180] 所述第二接收模块21,还用于在所述将所述测试结果发送至所述开发主机之后,所述开发主机发送的可执行代码,其中,所述可执行代码为开发主机对通信协议模型编译获得的代码,所述通信协议模型内嵌有N个第一类子模型,所述第一类子模型内嵌有图形标记和依据正确的帧格式信息编辑的协议帧,所述N为大于或等于1的整数;
[0181] 所述程序加载模块24,用于加载所述可执行代码。
[0182] 在上述实施例中,所述第二接收模块21,还用于在所述将所述测试结果发送至所述开发主机之后,接收所述开发主机发送的调试协议帧;
[0183] 所述发送模块22,还用于将所述调试协议帧发送至所述接入设备,并将应答信息发送至所述开发主机,其中,所述接入设备根据所述调试协议帧反馈所述应答信息;
[0184] 所述第三接收模块23,还用于接收所述应答信息。
[0185] 在上述实施例中,所述第二接收模块21,还用于在所述接收开发主机发送的测试帧之前,接收所述开发主机发送的设置后的端口初始化模型;
[0186] 所述程序加载模块24,还用于根据所述设置后的端口初始化模型对端口初始化配置;其中,所述设置后的端口配置模型为写入端口配置信息后的端口配置模型,所述端口配置信息包括端口读缓冲地址和端口写缓冲地址,所述端口读缓冲地址为所述嵌入式PLC预设读缓冲区的地址,所述端口写缓冲地址为所述嵌入式PLC预设写缓冲区的地址。
[0187] 图17所示实施例的装置对应地可用于执行图8~图11任一所示方法实施例中嵌入式PLC执行的步骤,其实现原理和技术效果类似,此处不再赘述。
[0188] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。