本发明专利技术提供一种用于可编程逻辑控制器和个人计算机进行实时通信的方法,该方法包括:每次重建可编程逻辑控制器和个人计算机之间的连接时,可编程逻辑控制器和个人计算机中的主叫方发送序号重置报文,被叫方通过发送序号重置回复报文来确认;在所述连接期间,在主叫方和被叫方之间通过握手报文来确定通信是否正常;只有在通信正常时,主叫方才按照报文的优先级来发送报文,其中只有在接收到来自被叫方的上一主叫回复报文时,主叫方才发送新的主叫报文。
【技术实现步骤摘要】
本专利技术涉及工业通信领域,更具体地涉及工业设备与信息技术设备进行通信的特殊应用。
技术介绍
在目前的工业控制领域中,可编程逻辑控制器(PLC)和个人计算机(PC)之间的通信方式种类繁多,通信协议也能较完整地保证通信的实时和可靠。但前提是在PC中需要安装工业控制软件和工业板卡,在某些特殊的应用中这会带来一定的副作用。例如,如果PLC和运行图像处理的PC进行通信,在PC中再额外地运行工业控制软件或工业控制板卡,则一方面会造成PC的CPU资源的运行能力不够,另一方面也会在维护中带来诸多不变。
在现有技术中已有利用PLC厂商所提供的标准通信端口和由用户自定义的自由口通信方式以及大家所熟悉的编程语言来实现PC与PLC之间的实时通信的方法。利用这些方法无需安装工业控制软件和工业板卡。然而,在这些方法中普遍存在以下问题:
1.控制指令传输不可靠:控制指令传输需要建立在稳定可靠的通信协议之上,但是现有的标准通信端口、例如RS232串口(或RS422/RS485)通信为不可靠传输,因此需要在此基础上建立可靠的数据传输协议。
2.没有完善的安全联锁等异常通知协议的相关处理机制。
3.系统模块没有统一的通信层,导致不同产品通信模块代码无法重用,应用协议层与通信层耦合性过强。
鉴于这种情况,需要一种用于在无需安装工业控制软件和工业控制板卡的前提下实现PLC和PC之间的实时且可靠的通信方法,在该方法中能够通过完善的通信层的相关机制使协议层的报文有效且有序地得到发送。
技术实现思路
本专利技术的目的在于提供一种用于PLC和PC进行实时通信的方法,利用该方法能够在无需安装工业控制软件和工业控制板卡的前提下实现PLC和PC之间的可靠的实时通信。
本专利技术基于以下认识:为了保证PLC和PC之间的可靠的实时通信,首先需要自定义较完善的通信协议,其次需要利用本领域技术人员所熟悉的编程语言、例如在PLC中需要利用汇编语言来实现,最后需要通过较完善的测试来验证其可靠性。
根据本专利技术,对ISO(国际标准化组织)七层协议、尤其是应用层进行了改进,具体而言在应用层中制定了通信层和协议层的相关机制。通信层实现对报文传输的可靠性和实时性的保证,协议层负责报文的编码和解析。这两层协议通过堆栈来进行功能的衔接。这样的机制在实际应用中既具有一致性又具有灵活性。较复杂的通信层可以一直保持不变,以满足一致性。协议层可以根据实际的需要进行修改,灵活定义,以满足灵活性。
根据本专利技术,在通信层中实现以下几个机制:
1.通过序号保证机制来实现对报文可靠性和实时性的检测。
2.通过完善的回复、重发机制来实现报文的可靠传输。
3.通过高低优先级报文机制来实现特殊报文的实时传输。
4.通过异常处理机制来保证通信在异常情况下能够有效地得以恢复。
在PLC程序实现方面可以利用汇编语言采用堆栈的形式实现报文的发送、接收、存储、重发、校验等功能,其中协议层负责将报文压入堆栈,而通信层负责将报文弹出堆栈。在堆栈的压入和弹出上,PLC是通过指针对数据块进行操作来实现的。当需要向堆栈压入数据报文时,PLC首先根据堆栈中、即数据块中已存储的报文的数量计算出要存储的报文的首字节应存放的地址,并将指针指向该地址,将相应数据拷贝到该地址的存储区中,之后随着指针的累加和数据的拷贝实现数据报文的压栈。当需要数据报文出栈时,通过指针将除了要出栈的数据报文外的所有数据前移以覆盖前一个报文。
根据本专利技术,提供一种用于可编程逻辑控制器和个人计算机进行实时通信的方法,该方法包括:
每次重建可编程逻辑控制器和个人计算机之间的连接时,可编程逻辑控制器和个人计算机中的主叫方发送序号重置报文,被叫方通过发送序号重置回复报文来确认;
在所述连接期间,在主叫方和被叫方之间通过握手报文来确定通信是否正常;
只有在通信正常时,主叫方才按照报文的优先级来发送报文,其中只有在接收到来自被叫方的上一主叫回复报文时,主叫方才发送新的主叫报文。
在根据本专利技术的实施例中,主叫方是个人计算机,而被叫方是可编程逻辑控制器,或者主叫方是可编程逻辑控制器,而被叫方是个人计算机。
在根据本专利技术的实施例中,主叫方在进行发送之前判断两次发送之间的时间间隔是否大于等于发送最小时间时隔。
在根据本专利技术的实施例中,报文包括报文头、报文序号、通信报文数据和校验和。
在根据本专利技术的实施例中,通过报文序号来区分报文的优先级。
在根据本专利技术的实施例中,在发送高优先级的报文之前,在所述主叫方侧在该高优先级的报文中添加校验和。
在根据本专利技术的实施例中,在接收到来自被叫方的上一主叫回复报文时,在所述主叫方侧将报文序号加1并且在新的主叫报文中添加报文序号。
在根据本专利技术的实施例中,在所述主叫方侧还在新的主叫报文中添加报文校验和。
在根据本专利技术的实施例中,如果在超时等待时间之后还没接收到来自被叫方的上一主叫报文回复,则主叫方重发上一主叫报文。
在根据本专利技术的实施例中,所述被叫方在接收到新的主叫报文时根据报文的校验和进行数据校验。
在根据本专利技术的实施例中,所述被叫方在接收到序号重置报文时以握手报文的形式构建序号重置回复报文并且将报文序号重置。
在根据本专利技术的实施例中,所述被叫方在接收到主叫报文时,根据报文的优先级进行处理。
在根据本专利技术的实施例中,如果所述主叫报文的序号是期待的序号,则所述被叫方构建主叫回复报文并将该主叫回复报文放入回复报文发送缓存中。
在根据本专利技术的实施例中,所述主叫方在接收到主叫回复报文时根据报文的优先级进行处理。
在根据本专利技术的实施例中,如果主叫回复报文的序号与等待回复的主叫报文的序号匹配,则所述主叫方更新数据发送缓存。
根据本专利技术,利用通用的TCP/IP技术通过自定义的协议可以实现在无工业控制软件和工业控制板卡的前提下PLC和PC之间的实时且可靠的通信,同时可以节省使用工业控制软件和工业控制板卡所需花费的成本,并对PC运行资源有很大的节省。
根据本专利技术的方法利用对高低优先级报文的区分有效地实现紧急处理级别的报文的优先发送,同时预留重发报文时间接口使该方法的实时性得到有效的保证。通过完善的通信层的相关机制使协议层的报文有效且有序地得到发送。这种方法比现有的一些用户自定义的自由口通信方式更为可靠和有效。
附图说明
结合附图,参考下面的详细说明将会对本专利技术有更完整的理解,并且能够更加清楚地了解本专利技术的优点,其中:
图1为根据本专利技术的通信协议报文格式的示意图;
图2为根据本专利技术在PLC或PC处接收数据的实施例的流程图;以及
图3为根据本专利技术在PLC或PC处发送数据的实施例的流程图。
图4为示意性地示出根据本专利技术的在PLC和PC之间的实时通信的信号流图。
具体实施方式
现在,将参考附图详细地说明本专利技术的实施例。在此,应当理解的是:以下实施例的描述并不是对本专利技术的限制,而是对本专利技术的举例说明。
图1为根据本专利技术的通信协议报文格式的示意图。该通信协议报文包括报文头、报文序号、通信报文数据和校验和,其中通信报文数据包括报文类型、通信报文控制字和通信报文参数字,该通信报文控制字由数据内容和数据状态组成。
在根据本专利技术的实施例中,报文序号用来在协议传输中为数据报本文档来自技高网...
【技术保护点】
用于可编程逻辑控制器和个人计算机进行实时通信的方法,包括:每次重建可编程逻辑控制器和个人计算机之间的连接时,可编程逻辑控制器和个人计算机中的主叫方发送序号重置报文,被叫方通过发送序号重置回复报文来确认,在所述连接期间,在主叫方和被叫方之间通过握手报文来确定通信是否正常,只有在通信正常时,主叫方才按照报文的优先级来发送报文,其中只有在接收到来自被叫方的上一主叫回复报文时,主叫方才发送新的主叫报文。
【技术特征摘要】
1.用于可编程逻辑控制器和个人计算机进行实时通信的方法,包括:
每次重建可编程逻辑控制器和个人计算机之间的连接时,可编程逻辑控制器和个人计算机中的主叫方发送序号重置报文,被叫方通过发送序号重置回复报文来确认,
在所述连接期间,在主叫方和被叫方之间通过握手报文来确定通信是否正常,
只有在通信正常时,主叫方才按照报文的优先级来发送报文,其中只有在接收到来自被叫方的上一主叫回复报文时,主叫方才发送新的主叫报文。
2.根据权利要求1所述的方法,其中所述主叫方是个人计算机,而所述被叫方是可编程逻辑控制器,或者所述主叫方是可编程逻辑控制器,而所述被叫方是个人计算机。
3.根据权利要求1所述的方法,其中所述主叫方在进行发送之前判断两次发送之间的时间间隔是否大于等于发送最小时间时隔。
4.根据权利要求1所述的方法,其中所述报文包括报文头、报文序号、通信报文数据和校验和。
5.根据权利要求4所述的方法,其中通过所述报文序号来在协议传输中为数据报文进行编号并且区分报文的优先级。
6.根据权利要求1所述的方法,其中在发送高优先级的报文之前,在所述主叫方侧在该高优先级的报文中添加校验和。
7.根据权利要求4所述的方法,其中在接收到来自被叫方的上一主叫回复报文时,在所述主叫方侧将报文序号加1并且在新的主叫报文中添加报文序号。
8.根据权利要求7...
【专利技术属性】
技术研发人员:胡煜,孙尚民,马媛,唐盛,喻卫丰,
申请(专利权)人:同方威视技术股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。