CN107317811B - 一种模拟plc的实现方法 - Google Patents
一种模拟plc的实现方法 Download PDFInfo
- Publication number
- CN107317811B CN107317811B CN201710485438.7A CN201710485438A CN107317811B CN 107317811 B CN107317811 B CN 107317811B CN 201710485438 A CN201710485438 A CN 201710485438A CN 107317811 B CN107317811 B CN 107317811B
- Authority
- CN
- China
- Prior art keywords
- plc
- message
- upper computer
- sample
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Programmable Controllers (AREA)
Abstract
本发明公开了一种模拟PLC的实现方法,包括以下步骤:(1)分析PLC的通信报文;分析PLC的通信行为,分析出PLC通信行为的关键部分,(2)读取包含真实PLC通信行为的报文;(3)接收上位机的请求;当模拟PLC接收上位机的请求后,模拟PLC程序解析上位机的请求报文,根据上位机的请求查找样例报文文件中的关键部分,然后使用所述样例报文中的关键部分组织回复给上位机的报文并将其发送出去。本发明的优点是从网络通信的角度模拟PLC的通信行为,实现方式简单且计算工作量小;以样例报文为基础模拟PLC使模拟程序更加灵活并且能适用多种场景。
Description
技术领域
本发明涉及一种模拟PLC的实现方法,属于自动控制技术领域。
背景技术
PLC(Programmable Logic Controller)即可编程逻辑控制器,是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作的面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。模拟PLC技术伴随计算机应用技术的发展而来,是对工业生产系统进行分析、诊断和优化的有力工具之一。在工业控制系统领域,由于工业生产向着高速、大型化及自动化方向发展,大量重大生产设备或过程控制设备的应用,成本日益增高,模拟PLC技术可以有效降低开发测试成本。在安全领域,模拟PLC技术可以诱导攻击者进行攻击,从而分析攻击者的攻击方法和行为。
公开号为CN205301993U的专利申请公开了一种可编程逻辑控制器模块检测平台。该检测平台包括第一测试底板以及与其连接的测控设备,第一测试底板设有测试处理器模块以及多组第一模块测试接口,所述第一模块测试接口连接待测试的第一PLC模块。本实施例的可编程逻辑控制器模块检测平台结合相关测试软件,可以模拟PLC工作的环境检测多种PLC模块的性能,并可以同时检测多个PLC模块.
公开号为CN103645672A的专利申请公开了一种PLC固件完整性验证装置及验证方法,所述装置包括基线建立单元、PC模拟PLC截获单元和验证单元,所述基线建立单元,用于截获安全固件数据,并基于MD5哈希算法建立32位基线;PC模拟PLC截获单元,用于通过个人计算机向用于模拟PLC的PC传输未知安全固件,并对未知安全固件进行截获,通过MD5哈希算法计算出32位的固件摘要;验证单元,用于将所述基线与所述固件摘要进行比较验证。本发明用在未知安全固件装载到PLC之前对其进行完整性验证,保证导入PLC的固件是完整的。防止不法分子或者同类竞争对手对固件的恶意破坏。
公开号为CN203164674U的专利申请公开了一种基于PLC运动控制系统的开发模拟平台,包括PLC控制器、触摸屏、增量式电机编码器、若干个按钮开关、若干个中间继电器、三个交流伺服电机驱动器,触摸屏通过串口通信电缆与PLC控制器相连接,增量式电机编码器、若干个按钮开关、若干个中间继电器、三个交流伺服电机驱动器分别通过控制电缆与PLC控制器相连接,各中间继电器还与指示灯相连接,增量式电机编码器分别与分度盘、交流伺服电机驱动器相连接,各交流伺服电机驱动器对应连接有交流永磁电机,各交流永磁电机的输出轴还分别与分度盘进行连接。
公开号为CN102411330A的专利申请公开了一种将可编程逻辑控制器程序转换为普通Petri网的方法,针对PLC梯形图程序,将梯形图触点和线圈模拟为结点,将导线模拟为有向边,建立梯形图程序的PLC有向图模型,定义该有向图中的路径,根据路径关系,将PLC有向图转换为Petri网;本发明实现PLC梯形图程序到普通Petri网模型的自动转换.
综上所述,现有模拟PLC的方法通过详细分析PLC的工作原理,以软件方式实现PLC的各种功能。当上位机主动连接模拟PLC软件时,模拟PLC软件做出相应的回复,以达到模拟PLC的效果。现有模拟PLC的方法在分析PLC的工作原理时需要详细分析出PLC上都有哪些输入输出区域及其属性,当上位机通过网络操作这些区域时,模拟PLC软件回复相应的报文。首先,现有模拟PLC软件在启动时,都会赋予这些区域一些默认值,这些值大多情况下不是真实PLC启动时的值,需要人为的调教这些值才能达到模拟PLC的效果。其次,如果真实PLC的程序发生改变,某些区域的值必然要改变,需要再次人为调教。第三,现有模拟PLC的方法只能模拟通过网络操作PLC输入输出区域,不能模拟上传、下载PLC程序的操作。综上所述,现有技术的缺点是:计算工作量巨大且不容易分析准确;难以实现PLC程序上传、下载的操作。
发明内容
本发明的目的在于提供一种能够克服上述技术问题的模拟PLC的实现方法,本发明的模拟PLC的实现方法的核心技术构思是:使用样例报文为基础模拟PLC的方式,通过分析PLC通信行为来模拟PLC。
本发明的模拟PLC的实现方法是一种以包含真实PLC通信行为的报文文件为基础的模拟PLC实现方法,通过读取包含真实PLC通信行为的报文文件来模仿PLC的行为。
本发明所述模拟PLC的实现方法具体包括以下步骤:
(1)分析PLC的通信报文;
分析PLC的通信行为,分析出PLC通信行为的关键部分,所述PLC通信行为的关键部分是指报文中依据上位机的请求报文不同而变化的部分。相比于上位机,PLC在通信中是被动方,需要根据上位机的请求给出回应,因此分析所述PLC通信行为的关键部分是非常重要的。
(2)读取包含真实PLC通信行为的报文;
在分析了PLC的通信报文以后,使用程序读取PLC通信的样例报文文件,所述样例报文文件是指模拟PLC程序在通信行为上与报文文件中的报文表现一致的文件。将所述样例报文文件读取到内存中能够在程序运行过程中快速查找需要使用的部分。当PLC接受了上位机的连接请求后,会使用样例报文文件的数据回复给上位机。
(3)接收上位机的请求;
当模拟PLC接收上位机的请求后,模拟PLC程序解析上位机的请求报文,根据上位机的请求查找样例报文文件中的关键部分,然后使用所述样例报文中的关键部分组织回复给上位机的报文并将其发送出去。所述样例报文文件中的关键部分是所述步骤(1)中分析出的PLC通信行为的关键部分的实例化即PLC通信行为的关键部分在样例报文文件中的体现。
本发明所述模拟PLC的实现方法中所述的样例报文文件中的关键部分根据协议不同而不同,所述的样例报文文件中的关键部分的存储和查找能够使用多种方式实现。所述多种实现方式包括但不限于以数组的形式进行样例报文的关键部分的存储和查找、以哈希表的形式进行样例报文的关键部分的存储和查找、以树的形式进行样例报文的关键部分的存储和查找。
本发明所述模拟PLC的实现方法的优点是从网络通信的角度模拟PLC的通信行为,实现方式简单且计算工作量小;以样例报文为基础模拟PLC使模拟程序更加灵活并且能适用多种场景。
附图说明
图1是本发明所述方法的读取样例报文文件流程示意图:
图2是本发明所述方法的模拟PLC程序回复上位机请求流程图。
具体实施方式
下面结合附图对本发明的实施方式进行详细描述。如图1、2所示,本发明所述模拟PLC的实现方法包括以下步骤:
(1)分析PLC的通信报文;
分析PLC的通信行为,分析出PLC通信行为的关键部分,例如上位机对PLC数据区域进行的读操作、写操作,例如对PLC程序的上传、下载操作。以上传PLC程序为例,首先分析出请求上传PLC程序报文,并找到回复给所述请求的报文位置,然后分析出回复PLC程序报文中的PLC程序二进制流的部分即所述的PLC通信行为的关键部分,所述的PLC通信行为的关键部分携带了PLC程序的内容。除了所述的PLC通信行为的关键部分以外,所述PLC程序报文中还有连接计数、报文长度的字段,所述PLC程序报文中的连接计数、报文长度的字段对模拟PLC通信行为没有影响,但也是组成报文的必要部分,通信双方往往会在通信过程中检查这些字段以验证报文合法性,所述PLC程序报文中的连接计数、报文长度的字段称之为非关键部分,在后续的步骤中使用。
(2)读取包含真实PLC通信行为的报文;
根据所述步骤(1)中分析出的PLC通信行为的关键部分解析PLC通信的样例报文文件,将含有PLC通信行为的关键部分的报文按照上位机的请求类型分别存储在内存中,所述存储的方法根据程序使用场景的不同而不同,能够使用数组、哈希表、树形结构的方式存储。以上传PLC程序为例,以请求上传PLC程序命令为索引,存储所述步骤(1)中示例分析出的回复报文的二进制流。
(3)接收上位机的请求;
当模拟PLC接收上位机的请求后,模拟PLC程序解析上位机的请求报文,根据上位机的请求查找内存中样例报文文件中的关键部分,然后使用所述样例报文文件中的关键部分组织回复给上位机的报文并将所述报文发送出去,所述组织回复给上位机的报文是指以报文文件中的关键部分为基础,按照报文的格式填入关键部分和所述步骤(1)中的非关键部分即PLC程序报文中的连接计数、报文长度的字段。以上传PLC程序为例,当接收到上传PLC程序的请求报文后,查找所述步骤(2)中的二进制流,以此为基础组织回复报文并回复给上位机。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的范围内,能够轻易想到的变化或替换,都应涵盖在本发明权利要求的保护范围内。
Claims (6)
1.一种模拟PLC的实现方法,其特征在于,是一种以包含真实PLC通信行为的报文文件为基础的模拟PLC实现方法,通过读取包含真实PLC通信行为的报文文件来模仿PLC的行为;具体包括以下步骤:
(1)分析PLC的通信报文;
分析PLC的通信行为,分析出PLC通信行为的关键部分,所述PLC通信行为的关键部分是指报文中依据上位机的请求报文不同而变化的部分;
(2)读取包含真实PLC通信行为的报文;
在分析了PLC的通信报文以后,使用程序读取PLC通信的样例报文文件,所述样例报文文件是指模拟PLC程序在通信行为上与报文文件中的报文表现一致的文件,所述一致的文件为PLC的通信报文中的连接计数以及报文长度的字段;
(3)接收上位机的请求;
当模拟PLC接收上位机的请求后,模拟PLC程序解析上位机的请求报文,根据上位机的请求查找样例报文文件中的关键部分,然后使用所述样例报文中的关键部分组织回复给上位机的报文并将其发送出去。
2.根据权利要求1所述的一种模拟PLC的实现方法,其特征在于,所述步骤(1)中,相比于上位机,PLC在通信中是被动方,需要根据上位机的请求给出回应。
3.根据权利要求1所述的一种模拟PLC的实现方法,其特征在于,所述步骤(2)中,将所述样例报文文件读取到内存中能够在程序运行过程中快速查找需要使用的部分;当PLC接收了上位机的连接请求后,使用样例报文文件的数据回复给上位机。
4.根据权利要求1所述的一种模拟PLC的实现方法,其特征在于,所述步骤(3)中,所述样例报文文件中的关键部分是所述步骤(1)中分析出的PLC通信行为的关键部分的实例化,即PLC通信行为的关键部分在样例报文文件中的体现。
5.根据权利要求1所述的一种模拟PLC的实现方法,其特征在于,所述的样例报文文件中的关键部分根据协议不同而不同,所述的样例报文文件中的关键部分的存储和查找能够使用多种方式实现,所述多种实现方式包括以数组的形式进行样例报文的关键部分的存储和查找、以哈希表的形式进行样例报文的关键部分的存储和查找、以树的形式进行样例报文的关键部分的存储和查找。
6.根据权利要求5所述的一种模拟PLC的实现方法,其特征在于,所述多种实现方式包括以数组的形式进行样例报文的关键部分的存储和查找、以哈希表的形式进行样例报文的关键部分的存储和查找、以树的形式进行样例报文的关键部分的存储和查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710485438.7A CN107317811B (zh) | 2017-06-23 | 2017-06-23 | 一种模拟plc的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710485438.7A CN107317811B (zh) | 2017-06-23 | 2017-06-23 | 一种模拟plc的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107317811A CN107317811A (zh) | 2017-11-03 |
CN107317811B true CN107317811B (zh) | 2020-07-07 |
Family
ID=60179598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710485438.7A Active CN107317811B (zh) | 2017-06-23 | 2017-06-23 | 一种模拟plc的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107317811B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408766B (zh) * | 2018-09-26 | 2023-05-16 | 国网山西省电力公司电力科学研究院 | 一种梯形图频率计算的方法 |
CN112910855B (zh) * | 2021-01-18 | 2023-04-07 | 中国民航信息网络股份有限公司 | 一种样例报文处理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702491B2 (en) * | 2000-09-29 | 2010-04-20 | Ford Global Technologies, Llc | Method of part flow model for programmable logic controller logical verification system |
KR20110041026A (ko) * | 2009-10-15 | 2011-04-21 | 한전케이피에스 주식회사 | 이동가능 plc 시뮬레이터 |
CN104903798B (zh) * | 2013-01-16 | 2019-09-10 | 西门子公司 | 用于所模拟的可编程逻辑控制器的自动化输入模拟 |
CN104268079B (zh) * | 2014-09-24 | 2017-10-31 | 福建联迪商用设备有限公司 | 一种pos应用程序测试的方法及系统 |
CN106371432B (zh) * | 2016-11-23 | 2019-03-15 | 山东钢铁股份有限公司 | 一种连铸机plc系统的故障处理方法及系统 |
-
2017
- 2017-06-23 CN CN201710485438.7A patent/CN107317811B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107317811A (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063829B (zh) | 神经网络构建方法、装置、计算机设备和存储介质 | |
CN101964036B (zh) | 漏洞检测方法及装置 | |
CN105528290A (zh) | 基于脚本的嵌入式软件仿真及测试一体化平台的构建方法 | |
CN102520619A (zh) | 一种通用化卫星遥测仿真器 | |
KR102013657B1 (ko) | 연관된 다중 파일 정적 분석 장치 | |
CN104598373A (zh) | 一种多技术融合的嵌入式软件测试方法 | |
CN102707712B (zh) | 电子装备故障诊断方法和系统 | |
CN107317811B (zh) | 一种模拟plc的实现方法 | |
JP6877215B2 (ja) | コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法 | |
CN114692383B (zh) | 全范围模拟机仿真对象的建模方法、装置及计算机设备 | |
CN103885341B (zh) | 基于汽车性能模拟器的性能分析系统和方法 | |
CN110795000A (zh) | 基于界面分割的自动控制方法、装置及终端 | |
CN112149828B (zh) | 基于深度学习框架的算子精度检测方法和装置 | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
Ren et al. | A dynamic taint analysis framework based on entity equipment | |
JP6959624B2 (ja) | セキュリティアセスメントシステム | |
CN106776277A (zh) | 一种跨进程测试的方法、装置及电子设备 | |
CN110209572A (zh) | 用户界面测试方法、用户界面测试系统及终端 | |
CN113886221B (zh) | 测试脚本生成方法、装置、存储介质及电子设备 | |
KR102325612B1 (ko) | 시뮬레이터를 구현하는 방법, 장치, 기기 및 매체 | |
CN115062571A (zh) | 应用于集成电路器件的数据区域动态选取方法、系统、设备和计算机可读存储介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN112231062A (zh) | 一种用于可编程工业控制器的安全测试系统及方法 | |
CN112306853B (zh) | 一种模糊测试方法、装置、设备及介质 | |
CN113485879A (zh) | 一种基于labview调用vivado-tcl脚本自动化测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |