本申请涉及通讯领域,特别是涉及一种基于modbus协议扩展文件传输的方法及系统。
背景技术:
1、modbus协议是应用于电子控制器上的一种通用语言,通过此协议,描述了控制器请求访问其它设备的过程,如何回应来自其它设别的请求,以及怎样检测数据传输过程出现错误并记录,随着modbus协议的发展,已经成为通用的工业通讯标准。
2、随着工业现场对数据交互的要求越来越高,对于客户端与服务端实现文件传输的通讯性能也越来越高,但目前客户端与服务端在实现文件传输过程中系统要求复杂,且功能单一。
技术实现思路
1、基于此,有必要针对上述工业现场数据交互中客户端与服务端文件传输系统要求复杂且功能单一的问题,提供一种基于modbus协议扩展文件传输的方法及系统。
2、第一方面,本申请提供一种基于modbus协议扩展文件传输的方法,包括以下步骤:
3、主站按照要求填充第一数据形成第一数据帧并发送至通讯总线;
4、对应所述第一数据帧的从站接收所述第一数据帧,并按照要求解析数据,从站按照解析后的功能任务执行响应动作;所述第一数据帧由地址码、功能码、扩展标识位、数据域和差错校验码组成,所述地址码、所述功能码、所述扩展标识位、所述数据域和所述差错校验码依次排序,所述地址码用于确定从机地址,所述功能码用于定义从机执行modbus协议功能,所述扩展标识位用于扩展文件传输,所述数据域用于填充所述功能码对应modbus协议功能的具体数据,所述差错校验码用于校验主站或从站接收的数据是否正确;
5、从站根据响应动作执行结果填充第二数据形成第二数据帧并发送至通讯总线;
6、主站接收所述第二数据帧,并按照要求解析数据,完成主站与从站之间的单次通讯。
7、上述的基于modbus协议扩展文件传输的方法中,通过在modbus协议的标准数据帧加入扩展标识位,扩展标识位用于实现主站与从站之间进行扩展文件传输,以提高工业现场的数据交互能力。具体地,主站根据用户要求与从站进行文件传输任务,主站按照任务内容对应的第一数据进行填充并形成第一数据帧,第一数据帧包括地址码、功能码、扩展标识位、数据域和差错校验码,与地址码中地址匹配的从站接收该第一数据帧,并对其进行解析,从站根据对第一数据帧的解析结果进行响应动作;从站根据响应动作的执行结果对应的第二数据进行填充形成第二数据帧并通过总线发送至主站;主站接收第二数据帧并进行解析,接收执行任务结果和对数据进行校验。通过扩展标识位设置在功能码与数据域之间,且扩展标识位能实现主站与从站进行扩展文件传输功能,如打开文件、读写文件、创建文件夹、文件重命名、删除文件等。
8、在其中一个实施例中,所述扩展标识位包括功能定义部分和目标内容部分,所述功能定义部分和所述目标内容部分按照依次排序,所述功能定义部分用于功能说明,所述目标内容部分用于填充功能执行内容。
9、在其中一个实施例中,所述功能定义部分包括目标字节长度、子功能码、内存地址、文件偏移,所述目标字节长度、所述子功能码、所述内存地址、所述文件偏移依次排列,所述目标字节长度用于定义目标数据段的字节数目,所述子功能码用于利用字节的不同数值定义相应的执行功能,所述内存地址用于确定对应从站中目标内容的存储器编号,所述文件偏移用于执行读写操作时确定当前偏移位置。
10、上述的基于modbus协议扩展文件传输的方法进一步限定了功能定义部分包括目标字节长度、子功能码、内存地址、文件偏移,且目标字节长度、子功能码、内存地址、文件偏移依次排列,通过目标字节长度,主站告诉对应从站需要执行操作的文件的全路径字符串字节长度,例如需要从站打开全路径字符串为c:/code/file1的文件,目标字节长度为13;通过子功能码,主站告诉对应从站需要执行任务的类型,其类型包括打开或关闭文件、读取或写入文件、打开或关闭文件夹、创建文件夹并对其进行命名、删除文件,相对于标准modbus协议中功能码,本申请中数据帧增加的扩展标识位能够实现主站与从站基于modbus协议实现文件传输的功能;通过内存地址,确定从站中文件存储器的具体编号;通过文件偏移,从而确定基于打开文件找到需要进行读写操作的当前位置,由于结束读写操作后会自动更新偏移量,对于主站与从站之间需要进行大容量的文件传输时,通过把大容量文件进行拆分成若干段,每一段的子文件能够根据文件偏移地址进行按序读写,从而保证大容量文件在传输过程中的完整性和准确性。
11、在其中一个实施例中,所述目标字节长度的字节数量为两个。
12、在其中一个实施例中,所述子功能码的字节数量为一个。
13、在其中一个实施例中,所述子功能码的字节数值范围为1至9,其中,子功能码数值1为对应打开文件操作,子功能码数值2为关闭文件操作,子功能码数值3为读取文件操作,子功能码数值4为写入文件操作,子功能码数值5为打开文件夹操作,子功能码数值6为关闭文件夹操作,子功能码数值7为关闭文件夹操作,子功能码数值8为文件重命名操作,子功能码数值9为删除文件操作。
14、上述的基于modbus协议扩展文件传输的方法进一步限定了子功能码的字节数值范围为1至9,而且不同字节数值不同,其执行的操作也不同,通过不同字节数值的子功能码组成的数据帧,能够实现主站与从站实现扩展文件传输;例如,主站发出命令需要从站创建一个文件夹并对于其进行重命名,主站给从站发送的第一个数据帧其子功能码的字节数值为7,从站创建一个新的文件夹,待该次通讯结束后,主站给从站发送第二个数据帧,其子功能码的字节数值为8,对上述创建的文件夹进行重命名。
15、在其中一个实施例中,所述内存地址的字节数量为一个。
16、在其中一个实施例中,所述文件偏移的字节数量为四个。
17、在其中一个实施例中,所述扩展标识位采用十六进制计数方式表示数据。
18、第二方面,一种通讯系统,其特征在于,包括:
19、主站和至少一个从站,所述主站与所述从站通过modbus总线进行连接,所述主站和所述从站采用上述的基于modbus协议扩展文件传输的方法进行通讯。
20、上述传输系统中,通过采用基于modbus协议扩展文件传输的方法,主站与从站之间能够实现打开文件、读写文件、创建文件夹、文件重命名、删除文件等操作,从而提高工业现场数据交互的性能。
1.一种基于modbus协议扩展文件传输的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于modbus协议扩展文件传输的方法,其特征在于,所述扩展标识位包括功能定义部分和目标内容部分,所述功能定义部分和所述目标内容部分按照依次排序,所述功能定义部分用于功能说明,所述目标内容部分用于填充功能执行内容。
3.根据权利要求2所述的基于modbus协议扩展文件传输的方法,其特征在于,所述功能定义部分包括目标字节长度、子功能码、内存地址、文件偏移,所述目标字节长度、所述子功能码、所述内存地址、所述文件偏移依次排列,所述目标字节长度用于定义目标数据段的字节数目,所述子功能码用于利用字节的不同数值定义相应的执行功能,所述内存地址用于确定对应从站中目标内容的存储器编号,所述文件偏移用于执行读写操作时确定当前偏移位置。
4.根据权利要求3所述的基于modbus协议扩展文件传输的方法,其特征在于,所述目标字节长度的字节数量为两个。
5.根据权利要求3所述的基于modbus协议扩展文件传输的方法,其特征在于,所述子功能码的字节数量为一个。
6.根据权利要求5所述的基于modbus协议扩展文件传输的方法,其特征在于,所述扩展标识位采用十六进制计数方式表示数据。
7.根据权利要求6所述的基于modbus协议扩展文件传输的方法,其特征在于,所述子功能码的字节数值范围为1至9,其中,子功能码数值1为对应打开文件操作,子功能码数值2为关闭文件操作,子功能码数值3为读取文件操作,子功能码数值4为写入文件操作,子功能码数值5为打开文件夹操作,子功能码数值6为关闭文件夹操作,子功能码数值7为关闭文件夹操作,子功能码数值8为文件重命名操作,子功能码数值9为删除文件操作。
8.根据权利要求3所述的基于modbus协议扩展文件传输的方法,其特征在于,所述内存地址的字节数量为一个。
9.根据权利要求3所述的基于modbus协议扩展文件传输的方法,其特征在于,所述文件偏移的字节数量为四个。
10.一种通讯系统,其特征在于,包括主站和至少一个从站,所述主站与所述从站通过modbus总线进行连接,所述主站和所述从站采用权利要求1至9任意一项所述的基于modbus协议扩展文件传输的方法进行通讯。