恭喜,你发布的帖子
发布于 2026-04-24 19:09:48
1楼
那就说的详细点!
参考链接:https://www.manualslib.com/manual/1947771/Siemens-Sinumerik-840d.html?page=326#manual;
报警27090是西门子SINUMERIK 840D系统上安全集成功能的数据交叉检查错误,即NCK(数控内核)与PLC两侧的安全信号状态不一致。
你可以按这个思路,一步步往下查:
先看全报警文本,定位变量
假设报警消息是:27090 Error in data NCK-PLC $A_INSE[2], NCK: 1; 2%1 是 $A_INS(变量类型)%2 是 2(数组索引,即第二个元素)%4 是 2(字段索引,对$A_INSE来说,范围1-64,指的就是$A_INSE[2])这意思就是NCK侧$A_INSE[2]的值是1,而PLC侧对应信号的值是0。
根据%4的数值快速定位
%4的数字直接对应了失效的系统变量索引,你不用猜:
%4 = 1...64:对应 $A_INSE[1...64]
%4 = 65...128:对应 $A_OUTSE[1...64](实际查 %4 - 64 号)
%4 = 257...320:对应 $A_MARKERSI[1...64](实际查 %4 - 256 号)
分两步解决根本原因
第一步:查NC侧的安全程序 (SAFE.SPF)
去NC程序里找到 SAFE.SPF 文件,搜索出问题的变量,比如 $A_INSE[2]。在程序里查看,是哪行程序、哪个条件让它置位的。关键是,顺藤摸瓜找到它的前置逻辑,也就是驱动的输入点,例如 “DMP 04.03 bit01”,这直接对应了接线端子。
第二步:查PLC侧的程序和信号
查DB块:打开 DB18。根据%1的变量名去查手册里DB18对应的地址,例如$A_INSE对应的信号。
交叉对比:在PLC程序里,找到给DB18里对应位赋值的逻辑,通常是处理急停、安全门等硬线信号的中间变量。
找差异:回到物理层面,比如查到了“DMP 04.03 bit01”,就去检查这个端子的接线。看看是不是安全门锁松动、急停按钮触点氧化或双通道信号不一致等硬件问题,导致了NC和PLC两侧看到的状态不一样。
就是拿 SAFE.SPF 里的逻辑去对比PLC里的逻辑,看同一个外部信号(如一个门锁),为什么在两边计算出了不同的结果。绝大多数问题都出在物理信号上。
不知道这样分析理解不?
请填写推广理由:
分享
只看
楼主