在设计安全PLC时,要考虑到很多因素,需要很多的特殊设计。比如:一台安全PLC更强调内部诊断,结合硬件和软件,可以让设备随时检测自身工作状态的不适;一台安全PLC具有的软件,要使用一系列的特殊技术,能确保软件的可靠性;一台安全PLC具有冗余功能,即使一部分失效,也能够维持系统运行;一台安全PLC还具有外加的安全机制,不允许通过数字通信接口随便读写内部的数据。
安全PLC与常规PLC的不同还在于:安全PLC需要得到第三方专业机构的安全认证,满足苛刻的安全性和可靠性国际标准。必须彻底地采用系统方法,来设计和测试安全PLC。德国的TUV专家和美国的FM专家会提供对安全PLC设计和测试过程的、第三方独立的确认和验证,
特殊的电子线路,细致的诊断软件分析,再加上对所有可能失效进行测试的完整性设计,确保了安全PLC具有测定99%以上的内部元件潜在危险失效的能力。一种失效模式、影响和诊断分析(FMEDA)方法一直指导着设计,这种方法会指出每个元件是怎样引起系统失效,并且告诉你系统应该如何检测这个失效。TUV的工程师会亲自执行失效测试,把它作为他们认证过程的一个部分。
严格的国际标准软件应用于安全PLC。这些标准需要特殊技术,避免复杂性。更进一步的分析和测试,细致地检查操作系统的任务交互操作。这种测试包括实时的交互操作,比如多任务(当使用时)和中断。还需要进行一种特殊的诊断,被称为“程序流控制”和“数据确认”。程序流检查能确保基本功能能按正确的顺序执行,数据确认使所有的关键数据在存储器里进行冗余存储,并且在使用前进行有效性测试。在软件开发过程中,一个安全PLC需要附加的软件测试技术。为了核实数据完整性检查,必须执行一系列“软件失效注入”测试,也就是人为对程序进行故意破坏,来检查PLC的响应是否运行在预计的安全方式。软件的设计和测试带有详细的文件资料,这样第三方的检查员就能够明白PLC的运行原理,而多数软件开发没有使用这种规范的操作流程,这也正好说明为什么众多的垃圾软件会出现那么多的臭虫而无法发现了。