我们都知道测试OO系统的各种方法.但是,看起来我将要做一个我将处理PLC梯形图逻辑的项目(不要问:/),我想知道是否有一种很好的方法来测试系统的有效性.
到目前为止,我看到的唯一方法就是构建一个包含系统所有已知状态的巨大表,以及生成的输出状态.对于简单的'如果输入A打开,则在'情况下转动输出B'.我认为这不适用于更复杂的结构.
在IC设计领域对“逻辑”系统的验证称为“设计验证”,这是确保您在硬件(RTL)中设计的系统实现所需功能的过程。
梯形逻辑可以转换为现代HDL之一,例如Verilog。
|---|R15|---+---|/R16|---------(R18)--------| | | |---|R12|---+
像这样的表达
always @(*) R18 = !R16 && ( R15 | R12);
或者你可以使用一个assign语句
assign R18 = R16 && (R15 | R12);
闭锁继电器
assign R18 = (set condition) || R18 && !(break condition);
然后,使用免费的Verilog模拟器(例如Icarus)来开发测试平台并测试您的系统。确保您的测试用例能很好地覆盖逻辑!并且,如果梯形图编辑软件为您提供了不错的命名功能,请使用它们,而不要使用Rnn。
(注意:在PLC的Ladder Logic约定中,Rnn是内部继电器,而Xnn是输入,而Ynn是输出,可以从其中一个在线教程中快速了解到。
Verilog将是一种用于开发测试和测试平台的简便语言!
对某些单位延迟进行编程可能会有所帮助。
抱歉,我从未在Verilog转换器之间寻找梯形逻辑..但是我这一天的梯形逻辑只是被放入用于对PLC进行编程的计算机中-我使用的大多数继电器系统都是REAL继电器,连接到机柜中! !
祝好运。b
有一些免费的梯形逻辑编辑器(带有仿真器)..这是应该在Windows上运行的编辑器:
http://cq.cx/ladder.pl