[AB] 几种TwinCAT控制器级通讯方式的数据安全性对比

[复制链接]
查看62172 | 回复0 | 2024-5-4 11:59:44 | 显示全部楼层 |阅读模式
保持对技术的好奇心,拓宽知识的边界,提高认识的分辨率

内容简介:

软件行业有个安全证认,要求设备在与外界通讯时可以设置变量的访问权限。对于TwinCAT系统来说,与外界的控制器级通讯接口包括:Modbus RTU、Modbus TCP、ADS和OPC UA、OPC DA等,这几种方式分别可以通过什么机制来允许或者禁止用户对某些变量的访问呢?本文比较了这几种通讯方式的数据安全性,并重点说明了TwinCAT OPC Server和TwinCAT Modbus TCP 在数据安全方面的特性和实现方式。

1.    几种通讯方式的数据安全对比
1.1.   Modbus RTU Slave

用于供Client访问的变量放在指定的数组中。其它变量都不可见。



上图中,只有Inputs、Outputs和Memory数组可供Client访问。

1.2.   Modbus TCP Server

TwinCAT ModbusTCP Server,用于供Client访问的变量放在指定的地址以及固定名称的变量中。供Client访问的内存区间的起点和长度都可以设置。Modbus TCP Server有个默认的地址对应关系,凡是在地址对应表中的PLC地址区间,Client都可以访问。要确保数据安全,用户需要确认这些地址区间放置的数据是否适合向Client开放?否则,可以通过TwinCAT Modbus TCP Server 的配置XML文件修改。

修改完成并生效后,用户把允许Client访问的变量地址设置到这个区间即可,而该区间之外的所有变量Client都不能访问。

1.3.   ADS Server

所有变量名、地址都可以供Client访问。

1.4.   TwinCAT OPC DA Server

TwinCAT OPC DAServer可以配置PLC变量完全开放给Client,也可以精确到每一个变量来设置是否向Client可见,还可以设置Client对每一个变量的读写权限。

1.5.   TwinCAT OPC UA Server

TwinCAT OPC UA是最安全的数据通讯方式,可以设置各种级别的安全策略,详见OPC UA文档和例程。

2.    TwinCAT OPC DA Server的数据安全
2.1.   控制变量是否允许访问

在OPC Server的Configurator中,通过Device PLC的AutoCfg选项,可以控制变量是否允许OPC Client访问。

设置AutoCfg选项的界面:



0 : 不包含AutoCfgSymFile中指定的Symbol文件

1 : 包含AutoCfgSymFile中指定TwinCAT-PLC项目的Symbol文件

2 : 包含AutoCfgSymFile中指定TwinCAT-BCxxxx项目的Symbol文件

5 : 从ADS设备中上载变量标签

7 : 包含AutoCfgSymFile中指定TwinCAT 28项目的tpy文件

8 : 包含AutoCfgSymFile中指定TwinCAT 28项目的tpy文件,但只导入属性"OPC=1"的变量

该选项设置为8(Link andFilter to Generic TwinCAT),就只有注释中添加了"OPC=1"的变量才能在Client中访问。

2.2.   控制变量读写权限

AutoCfg选项设置为8时,通过PLC中变量名的注释,可以控制变量的读写权限。比如:



上图中,bInternal_0的OPC属性为0,所以在Client中选择监视变量的时候,不会出现在例表中。

如果Client试图对属性为1(只读)的变量bVar_R执行“Write”操作,系统提示Failed,如图:



变量bVar_W的属性为2(只写),所以Client端只显示它的名字,却不刷新它的值。



Idea:这种属性适合用来做什么呢?也许用做密码输入?

2.3.   常用选项对比

测试时最常用的是选项5,这时候不需要指定AutoCfg文件,目标控制器里面有什么变量就会显示什么变量,完全没有过滤,并且全部变量都可读写。

实际项目实施的时候,最常用的选项是1、7、8,对比这3种方式:

选项1是使用.sym文件,在TwinCAT 2中可以选择的哪些变量包含在.sym文件中:





选项7是使用.tpy文件,所有变量都会包含在.tpy中,不能过滤,不能选择。

选项8是使用.tpy文件,并且可以精确到每个变量来设置其访问权限。

对比选项1和8,各有优缺点。

选项1不需要写特殊的变量注释,但只能精确到对象来笼统地设置访问权限。

——解决办法:先把供OPC Client访问的变量集中到一个全局变量对象,并在PLC Control的Project|Option的Symbol Configuration下选中即可。

选项8可以精确到每个变量来设置,但是每个变量都要设置OPC 注释。

——解决办法:先在Excel中编辑好变量声明和OPC属性设置,再复制粘贴到PLC项目。

2.4.   对于TwinCAT 3

在TwinCAT 3项目中,PLC程序编译时还会产生.tpy文件,但是已经没有.sym文件了。所以TC OPC DA Server如果同时要访问TC2和TC3的控制器,如果对变量的访问权限有要求,推荐使用OPC UA。如果只能用OPC DA,则选择AutoConfig为8的方式——使用.tpy文件,但只导入属性"OPC=1"的变量。

3.    TwinCAT Modbus TCP Server的数据安全

(*以下文字适合于TwinCAT 2的Modbus TCP Server,TC3推荐使用OPC UA*)

TwinCAT ModbusTCP Server,用于供Client访问的变量放在指定的地址以及固定名称的变量中。供Client访问的内存区间的起点和长度都可以设置。Modbus TCP Server有个默认的地址对应关系,凡是在地址对应表中的PLC地址区间,Client都可以访问。要确保数据安全,用户需要确认这些地址区间放置的数据是否适合向Client开放?否则,可以通过TwinCAT Modbus TCP Server 的配置XML文件修改。

修改完成并生效后,用户把允许Client访问的变量地址设置到这个区间即可,而该区间之外的所有变量Client都不能访问。

3.1.   默认配置的地址对应关系



注意,由于Modbus的首地址为1,以Word为单位,而TC2的PLC的首地址为0,以Byte为单位,所以根据上表:Modbus地址为:PLC地址/2+1+Modbus起始地址。例如:

Modbus的4x 0001对应PLC的%IW0

Modbus的3x 0001对应PLC的%QW0

Modbus的3x 12289对应PLC的%MW0,其中12289即0x3000+1

3.2.   用工具修改地址对应关系

对于TwinCAT 2来说,在开发PC上如果安装了TwinCATOPC Server,默认路径“\TwinCAT\TcModbusSrv”下就会有配置工具TcModbusSrvCfg.exe:



IP Address: Server上可能有不只一个网卡,Client通过哪个网卡的IP访问Server?如果不设置,默认就使用本地第1个网卡的IP。

Port: 默认端口 502).

GetConfiguration: 从指定的IP和端口读取配置

SetConfiguration: 把当前配置写入到指定IP和端口

ExportConfiguration: 从指定的IP和端口读取配置并保存

ImportConfiguration: 导入以前保存的配置文件

Set DefaultConfiguration: 恢复默认配置 (使用本地IP,502端口和默认地址映射关系).

注意:使用配置工具时TwinCAT 必须是停止状态,否则配置工具会自行停止目标IP控制器上的TwinCAT服务。另外,如果OPC Server所在PC的操作系统安全设置选项比如防火墙中应允许OPC Server通过网络访问。

这个配置工具实际上生成一个XML文件,用文本编辑器可以查看和修改这个XML文件,但是显示用上述的配置工具可以更方便时生成、导出和激活该XML文件。

3.3.   手工修改地址对应关系

使用上节提Modbus TCP配置工具,可以更加友好的完成所有操作。但是有时候没有这个工具,或者这个工具因为各种原因不可用或者出错了,就只能人工修改XML配置文件,并在注册表中令其生效。

打开一个XML文件示例:



可见XML中的关键词与默认地址映射表有对应关系,只是前者有时使用16进制数字,而XML中全部使用10进制。修改相应的数字,可以改变Client可以访问的地址区间的起点和长度。

修改XML文件后,要命名为固定的名字,复制到指定的路径,并在注册表中确认是该路径该文件名生效:



如果发生异常,可以使用Clone:



END

示例程序和配套文档放在本公众号的云服务器,按日期查找"20180802"即可:

FTP下载工具访问:

  ftp://baclizzy.com.cn:21

IE浏览器访问:

  http://www.baclizzy.com.cn




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则