ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

汇川AM系列PLC后台安全管理与用户权限配置全攻略

汇川AM系列PLC后台安全管理与用户权限配置全攻略 做设备交付最怕碰上一种事程序下载进去没几天现场员工拿着原版程序包一通乱点配方被改了、伺服参数被清了最后连CPU密码都被人改掉厂家过去还得想办法找支持解。这种情况我遇到不止一次尤其在使用汇川AM系列这种中大型PLC的项目里后台安全管理和用户权限如果一开始没规划好后面全是坑。AM系列本身是基于Codesys平台的权限管理机制已经很成熟但很多工程师只是把程序写完、下载、走人根本没用过“用户管理”这个功能。等设备到了客户手里操作工、工艺员、设备科都在碰程序出了问题谁也说不清是谁动的。这篇文章我把汇川AM系列后台安全管理与用户权限的设置方法完整拆一遍从权限设计思路到具体操作步骤再到我在现场踩过的坑一次说清楚。1. 后台安全管理的整体设计与权限模型1.1 权限管理要解决的三层问题很多人以为用户权限就是“加个密码防别人看程序”其实这个理解太窄了。我在现场实际感受到AM系列这种中大型PLC应用场景里权限管理解决的其实是三层问题。第一层是操作安全。设备交付后操作工负责开停机、换料、调简单参数设备工程师负责故障诊断和工艺调整电气工程师才负责改程序和下装。如果所有人都是最高权限操作工误触一个“下载”按钮或者在线改了一个不该改的变量整个产线可能直接停机损失是按分钟算的。权限管理就是要让“每个人只能干他该干的事”。第二层是知识产权保护。设备厂开发的程序里面有工艺算法、运动控制逻辑、收放卷参数这些都是核心竞争力。终端用户如果拿到PLC就能随便上传程序技术方案就等于裸奔了。通过设置上载保护和下载权限可以有效防止程序文件被随意拷贝。第三层是责任追溯。产线出了问题总要查是谁在什么时候改了什么。如果有用户登录日志和修改记录问题一查一个准如果没有各部门互相扯皮最后大概率是设备厂家背锅。1.2 AM系列后台安全体系由哪几块组成汇川AM系列的用户权限管理完整来看其实是四块配合使用的不是单一功能。第一块是工程文件密码。在InoProShop打开工程时就要输入密码防止别人打开你的工程源码这解决的是“开发端”的访问控制。第二块是运行时用户管理。这个就是本篇文章的重点在PLC运行期间通过不同的用户账号和用户组控制谁能在线监控、谁能改值、谁能下载、谁能做安全相关的操作。第三块是PLC运行级密码。部分AM系列型号支持CPU级的访问限制即使别人拿到工程文件没有CPU密码也无法与PLC建立完整的在线连接。第四块是通讯级安全。AM系列支持OPC UA等现代通讯协议这类协议本身带用户认证机制可以跟PLC的用户体系对接而Modbus TCP这类老协议没有用户概念就需要通过其他手段限制访问。实操中很多工程师只用了第一块也就是工程密码后面的权限体系完全没有用起来。实际上对于已经交付的设备第二块才是最重要的因为它直接约束了所有在线操作的人。1.3 推荐的角色权限分配方案我做了这么多项目总结出一套比较通用的权限分配模型大家可以在这个基础上根据项目情况调整。核心思路是划分三级用户级别从低到高权限逐级叠加。角色主要职责建议权限范围备注操作员日常开停机、观察状态在线只读监控不允许强制变量不允许修改参数账号可共用设备启动后不必退出设备工程师故障排查、工艺参数调整在线监控、强制变量、修改保持性变量、启停程序需要能改配方、PID参数等管理员/设备厂家程序维护、固件升级、系统配置全部权限包括下载、上传、用户管理、安全设置密码定期更换由核心人员保管有些项目还会单独设置一个“工艺员”角色介于操作员和设备工程师之间只允许修改特定配方区域不允许碰运动控制参数。这种细粒度控制在Codesys用户管理里是可以实现的后面我会讲具体怎么配。2. 用户权限设置的操作全流程2.1 设置前的准备工作在动用户管理之前一定先把准备工作做足别一上来就新建用户、删用户搞到一半发现连不上PLC了。首先要确认软件版本。汇川AM系列主要用InoProShop编程软件不同版本对应的Codesys内核有差异用户管理界面和可选项也会稍有不同。我在现场发现有些老版本工程是用V1.5甚至更早版本建的用新版本软件打开以后用户管理菜单的位置和权限项可能对不上。建议先备份原始工程再用与PLC固件匹配的软件版本操作。其次要保证通讯正常并且在线。用户管理配置最终是要下载到PLC里的所以电脑和PLC必须通过以太网或者USB连接正常并且当前登录的用户必须有管理员权限。如果PLC里已经有用户设置了你连登录都登不上那就要先把PLC恢复或者用最高权限账号登录这个后面在常见问题里细说。最后也是我特别想强调的一点如果设备正在生产运行设置权限前务必确认操作不会导致CPU停机。用户管理一般不涉及程序逻辑修改但下载过程本身可能引起程序重启。建议在设备停机检修窗口或者调试阶段做不要在产线满负荷运行的时候操作。2.2 在InoProShop中启用用户管理用户管理的入口在InoProShop顶部的工程菜单里找到“用户管理”选项。第一次打开时系统会提示当前工程还未启用用户管理是否启用选择启用并再次登录。启用以后左侧会显示用户管理树默认包含若干用户组和用户。Codesys系列软件的默认逻辑是先定义用户组再往组里加用户权限分配是以组为单位的这样管理起来最清晰。这里有个容易忽略的点用户管理启用后编译下载时默认会把用户数据一起包含到PLC里。但如果你用的是老工程之前从来没有启用过用户管理第一次启用时系统会要求你设置一个管理员账号用于后续管理。这个管理员账号必须牢记否则后面所有的权限配置都无法进行我只能再次强调密码一定单独记录并存档。2.3 创建用户组、用户与权限分配启用用户管理之后就可以开始建组和建用户了。我一般习惯先把组建好再在组里加人顺序反过来的话容易搞混。第一步新建用户组。在用户管理树中右键点击“用户组”选择“添加用户组”命名建议用英文或拼音配合中文备注例如OperatorGroup操作员组、EngineerGroup工程师组、AdminGroup管理员组。名称一旦设置好后续不好改想清楚再填。第二步给用户组分配权限。选中用户组右侧会出现权限列表。列表里有很多项常见的有打开工程、关闭工程、在线登录、在线更改、在线下载、在线上传、启动CPU、停止CPU、强制变量、写变量、更新固件、文件传输、用户管理、安全设置等等。每项都可以勾选“允许”或“拒绝”。这里的基本原则是最小权限原则这个组的人需要做什么就给什么权限能不给的尽量不给。举个例子操作员组我会这样设置在线登录勾选允许在线监控允许强制变量拒绝写变量拒绝在线下载拒绝在线上传拒绝启动/停止CPU拒绝用户管理拒绝。这样操作员只能看碰不了任何东西。设备工程师组则多开放强制变量允许、写变量允许、固定区域参数修改允许、在线下载允许但仅限应用程序下载不包含用户管理修改启动/停止CPU允许。这里有个细节如果勾选允许在线下载那他就能下载整个应用也能顺便把用户管理配置下载进去。为了避免这个问题需要单独控制“用户管理”权限只给管理员组的成员开放这样工程师虽然能下载程序但动不了用户体系。第三步新建用户并加入用户组。在用户组下右键添加用户输入用户名和初始密码。同一个用户可以被加入多个用户组权限取并集实际项目中很少这么用一用户一组最清晰。用户密码支持设置“用户必须在下次登录时更改密码”这个在初始交付时很好用管理员发一个临时密码用户第一次登录改成自己的。2.4 密码策略与安全选项配置密码策略这一块很多工程师直接跳过不设这是不对的。Codesys用户管理支持比较完整的密码策略包括最小密码长度、是否必须包含数字和字母、密码有效期、登录失败锁定次数等。我的建议是交付项目时最小密码长度设为8位必须同时包含字母和数字登录失败5次锁定账号解锁需要管理员操作。密码有效期不建议设太短现场维护人员最烦密码过期一般设90天或者180天比较适中。如果客户是军工、食品医药这种审核严格的行业密码策略就要更严格一些有效期可以压到30天并且开启密码历史记录防止重复使用旧密码。另外还有一个容易被忽视的选项空闲超时退出。也就是用户在一定时间内没有任何操作系统自动退出登录。这个在现场非常实用因为很多操作员登录了就不退出然后去干别的别人过来直接在已登录的界面上操作权限形同虚设。我一般设置空闲5到10分钟自动锁定。2.5 下载用户管理配置到PLC用户管理配置好以后关键一步是编译下载。这里有一个我见过很多工程师翻车的点下载时软件会弹出一个对话框里面有多个选项包括是否包含“用户管理”、“密码保护”、“程序数据”等。默认情况下用户管理是勾选的但有的人为了加快下载速度或者没有注意取消了这个勾选结果下载完成后PLC里的用户管理被清空了所有权限保护失效设备完全没有安全防护。反过来的情况也存在工程里没有设置用户管理但PLC里已经有一套用户体系这时下载程序就会报用户管理不一致需要你输入管理员密码才能下载。这个时候不要慌输入正确的管理员密码就行了。若不知道密码就只能通过后续在工程中重新设置一套并强制覆盖。下载完成后建议断开在线连接然后重新登录验证一遍。你会发现登录时系统会弹出用户认证窗口要求选择用户并输入密码。不同权限的用户登录后可以看到或者操作的内容会不同低权限用户即使想强制变量也会提示权限不足。2.6 验证与存档权限系统配好之后不能直接就说“完事了”必须完整地验证一遍。我习惯按下面这个清单逐项测试用操作员账号登录确认能在线监控但无法强制变量、无法下载用工程师账号登录确认可以监控和修改指定参数无法修改用户管理用管理员账号登录确认所有功能都正常拔掉网线重新连接确认登录认证仍然生效重启PLC确认用户管理配置没有丢失。验证通过后把用户名清单、密码存档、权限分配表整理成一份设备交付文档单独交给客户方指定的管理员保管。密码封存这种事听起来简单实际上很多项目就是因为交接不规范过两年没人记得管理员密码最后只能联系厂家处理非常麻烦。3. 授权场景下的联动配置与常见操作3.1 在线下载/上传时的权限校验细节用户管理设好以后在线操作几乎每一步都会遇到权限校验尤其在下载和上传这两个动作上细节特别多。先说下载。用户组的“在线下载”权限控制的是下载整个应用程序。但即使你有下载权限如果工程中的用户管理与PLC中的不一致系统会要求你登录一个有“用户管理”权限的账号才能继续。这个设计其实是为了防止普通工程师下载程序时把用户体系给覆盖掉。所以我在给设备工程师分配权限时在线下载给允许但用户管理权限一定不给。这样他改完程序能下载但动不了后台账号体系。再说上传。把PLC里的程序上传到电脑这个动作在很多项目里是被严格限制的。你可以在用户组的权限列表里找到“在线上传”这个选项把它设为拒绝这样即使是设备工程师也无法把PLC里的源程序提取出来。但这带来的问题是以后做故障分析时工程师手里没有最新版本的程序可能不好排查问题。所以更稳妥的做法是上传权限只对管理员开放设备工程师需要获取程序时向管理员申请由管理员上传后提供。还有一个细节PLC的源程序上传出来后如果工程中设置了“禁止上载”的保护级别那么上传出来的工程文件在打开时也会要求输入密码甚至部分信息被屏蔽。这就相当于给程序加了两道锁。3.2 HMI与上位机如何与PLC权限协同很多项目里HMI触摸屏本身也有用户管理有操作员级别、管理员级别之类的设置。这时候就有一个常见的问题触摸屏上的用户登录和PLC里的用户管理是什么关系答案很简单完全是两套体系互不相干。触摸屏上的登录权限只是控制HMI画面上哪些按钮可点、哪些画面可见这些操作最终通过通讯报文发给PLC。PLC侧的用户管理则是控制谁能在在线编程软件里进行操作。两者独立但可以协同设计。比较好的做法是触摸屏画面按操作员、工艺员、管理员分三层操作员只能看到启动、停止、状态监控工艺员可以看到参数设置管理员可以看到系统配置。与此同时PLC侧的用户管理按照我前面的方案设置防止有人绕过触摸屏直接用电脑连PLC操作。这样双保险即使HMI密码被破解PLC本身还有一道屏障。如果上位机采用OPC UA与AM系列通讯那是可以直接对接用户认证的。AM系列的OPC UA服务器支持用户名密码认证还可以设置安全策略。你可以给上位机配置一个专门的服务账号拥有读取数据和写入指定变量的权限而不必把所有控制权都交给上位机。在InoProShop的OPC UA配置界面里启用安全认证后选择用户映射方式即可。3.3 Modbus TCP Server等通讯服务的权限影响有人可能会问操作工用Modbus TCP去连PLC能不能也被权限管理约束这里要实话实说Modbus TCP这个协议本身没有用户和密码的概念只要网络能通对方就能读写寄存器。所以靠在PLC内部做用户管理是无法限制Modbus TCP请求的需要靠网络层面的手段。实际项目中我的处理方法是如果现场要求AM系列做Modbus TCP Server我会建议客户把PLC放在独立网段或者专用工业交换机里和生产办公网络隔离在交换机上做端口或者IP白名单限制只允许HMI、上位机等固定IP访问PLC的502端口关键的控制命令不做成简单的寄存器写值而是做成“先写预置值再写触发位”的两步操作配合PLC内部的联锁保护降低误操作风险。权限管理解决的是“谁能通过工程软件修改PLC”通讯层解决的是“谁能通过网络读写数据”这两者是不同维度的问题都要重视不要指望靠用户管理解决一切安全问题。3.4 CNC File模式与运动控制文件的访问控制汇川AM系列在运动控制场景里有不少项目用到CNC File模式也就是通过文件导入加工路径、凸轮曲线之类的数据。这个功能调试时很方便生产时却很危险。如果操作员有文件传输权限他就可能把错误的加工文件下载到PLC里轻则撞机报废工件重则损坏设备。所以权限设置时文件传输、文件操作这类权限一定要单独管控。加工文件的导入和更新应该由工艺员或者设备管理员操作而不是操作员。具体操作是在用户组的权限列表里把“文件传输”和“下载文件”权限设为拒绝这样普通用户登录后即使知道文件操作指令也无法把文件写入PLC内部存储区。如果项目需要频繁更换加工文件我建议在触摸屏上做一个配方管理界面把CNC文件通过HMI的上位文件管理功能完成而不是直接开放PLC文件通道。操作员在触摸屏上选择加工程序号PLC内部逻辑根据选择加载对应文件从流程上规避误操作。3.5 DWord转Real等常规操作与权限没直接关系但要留权限前面文章里很多朋友问过AM系列里DWord怎么转Real做Modbus TCP通讯时数据高低字转换也经常遇到。这里顺手讲一下因为这类操作往往在联调阶段需要在线修改变量、强制测试如果你的用户管理已经启用而当前登录账号没有强制和写变量权限调试就卡住了。DWord转Real在Codesys平台里最简单的方式是用指针或者UNION联合体。比如定义两个Word变量word1、word2再定义一个Real变量real1通过UNION把两块内存映射到同一地址word1和word2组成一个DWord这个DWord的二进制内容直接解释为Real。另一种方式是使用系统自带的转换功能块把两个Word拼接成DWord再使用BIT_CAST或者MEM类操作转换。这个方法本身不复杂但调试时必须有强制变量权限所以我一般会把测试账号设置为工程师权限联调之后再收回。要特别提醒的是在做Modbus通讯的数据解析时很多奇怪的数据错误根本不是转换方法的问题而是大小端顺序反了。例如寄存器的高低位顺序和PLC内部的字顺序不一致导致转换后的实数完全不对。这种调试非常浪费时间权限方面不卡壳已经能省不少事。4. 常见问题与排查技巧实录4.1 设置了用户管理后无法在线监控这是启用权限管理以后最常遇到的问题现象是能Ping通PLC也能与PLC建立连接但登录时提示用户验证失败或者登录后在线监控显示灰色无法使用。排查思路按三步走。第一步确认你用的账号密码是否正确特别是密码是否区分大小写是否到了有效期第二步确认该用户所属的用户组是否被分配了“在线登录”和“在线监控”权限很多人在分配权限时只勾了在线登录没有勾写变量结果监控不了第三步确认当前工程与PLC中的用户管理是否一致如果PLC固件被更新或者恢复过出厂设置用户管理可能被重置需要管理员重新下发。4.2 下载时报“用户管理不一致”这个报错我之前说过本质是电脑工程里的用户管理配置和PLC里的用户配置对不上。解决办法有两种。一种是你有管理员账号在弹窗中输入当前PLC的管理员账号密码然后重新编译下载下载时会用工程里的用户管理覆盖PLC中的配置之后就一致了。另一种是你已经不知道PLC里管理员密码这时候用工程里的管理员账号也无法通过验证只能使用汇川官方的处理方式通过特殊指令或售后工具把PLC恢复默认状态但这会导致PLC内部用户管理全部清空操作前务必备份程序。预防措施也很简单下载时如果弹窗提示用户管理不一致千万不要盲目选择跳过先搞清楚两边差异。多次强制覆盖下载后PLC里的用户体系可能会跟工程源码不一致导致工程备份都恢复不到原状。4.3 忘记密码怎么办这个问题我不想说太多因为确实没有后门。Codesys的用户管理机制是经过密码学处理的不存在简单破解方法汇川官方技术支持也只能通过标准恢复流程来处理。与其等出了事再想办法不如提前建立密码管理机制。我个人的做法是在项目交付仪式上当着客户设备负责人的面把管理员密码用信封封存并签字确认同时留存一份在公司的项目档案里。密码按照设备验收、满一年、满两年这样的周期定期更换更换记录同步到交付文档。很多项目出问题的场景都是因为人员离职交接不到位导致密码彻底丢失这种事我在现场见过太多次了。4.4 触摸屏无法写入数据但PLC程序正常这类问题的表现是触摸屏画面能显示数据但一点“写入”按钮就提示超时或者没有响应。排查时先别急着怀疑触摸屏程序先看PLC侧有没有权限限制。有时工程师测试时用高权限账号在线操作过之后没有退出触摸屏通过通讯写入时实际上会话被高权限保住了但一旦PLC重启或者在线连接断开再次写入就会被PLC拒绝。另外要检查触摸屏的通讯设置里是否开启了写保护或者使用了只读连接。有些组态软件在新建通讯连接时默认把数据访问方式设为只读写入需要单独勾选允许写操作。这个问题与PLC用户管理无关但容易出现一起出现所以排查时要两条路都走。4.5 权限设置没有生效普通用户还是能改参数如果出现了“设了权限但没效果”的情况我的第一反应是你设置的权限可能下发错了对象。Codesys的权限模型分为“用户权限”和“代码访问权限”有时候你只在用户管理里限制了用户组但程序代码内部赋予了某些通讯对象或任务特殊的访问权限导致绕过了用户组限制。另外检查是否所有用户都归属到了正确的用户组有没有用户同时属于两个组权限取并集后把上限抬高了。还有一点很多工程师喜欢在调试阶段直接把权限全部勾选调试完忘记改回去。这种状态下用户管理形同虚设所有限制都无效。所以我每次下载前都会检查一遍权限列表确认“调试模式”没有开着。4.6 现场安全管理避坑清单根据我的现场经验再列几条实用建议每一句话背后都有真实的翻车案例暂停使用操作工账号几天后就发现被人登录了立刻修改密码操作员账号一定不能设为长期不失效要设置定期强制改密。PLC上电前检查网线确认编程口没有被随意插入笔记本。有些工厂维护人员图省事直接把电脑连在PLC调试口如果调试口的权限没设限制这是最大隐患。编程时保留一份没有启用用户管理的“裸工程”存档以备PLC故障恢复时使用但这份存档必须严格保密不能随意外发。修改用户管理配置时先在电脑本地测试再下载到PLC。不要在PLC上边生产边改权限一旦中途通讯断开会很尴尬通常会导致设备停机。涉及多个AM系列PLC的产线尽量保持各台PLC的用户管理配置一致否则运维人员在不同设备间操作时容易混淆账号权限。5. 我在权限配置上的一点个人体会做了这么多年PLC项目我最大的体会是权限管理这个东西不是技术难题而是项目管理问题。大多数工程师不设置权限不是因为不会而是怕麻烦觉得“多一事不如少一事”。但等到设备交付后真正出问题的几乎都是没做权限控制的项目。我现在的习惯是从项目第一版程序开始就把用户管理加进去哪怕设备还没有最终验收调试阶段也需要一套临时账号管理方便记录谁在什么时候做了什么修改。项目交付时把用户体系整理成完整文档交底让客户知道每个账号该给谁用密码多久换一次权限调整该找谁。这套流程一旦形成习惯其实并不费多少时间但对整个设备生命周期的影响是巨大的。另外建议大家在交付后的前三个月内主动回访一次帮客户确认权限运行状态。很多时候客户自己都不知道权限丢了直到出了事故才想起来查。提前沟通既体现了设备厂家的专业度也避免后面被动救火。权限管理做得好客户对你的信任度提升一大截后续扩展订单和维护合同都好谈。
返回列表