Показано с 1 по 10 из 343

Тема: ПР200 на четырёхзначной логике

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,167

    По умолчанию

    Цитата Сообщение от Geenerator Посмотреть сообщение
    .. Это только обработка ошибок
    konfig:

    ; 1 нет готовности ЧПУ
    U62K00=I00K00*T4U+U62K00
    ; 2 нет +24В (провод 01204)
    U62K01=/I00A00+U62K01
    ; 3 нет +24В (провод 01206)
    U62K02=/I00A01*T4U+U62K02
    ; 4 нет +24В (провод 01208)
    U62K03=/I00A02*T4U+U62K03
    ; 5 нет +24В (провод 01210)
    U62K04=/I00A03*T4U+U62K04
    ; 6 нет ~220В (01-Q6)
    U62K05=/I00A04*T4U*/U62K01+U62K05
    ; 7 нет ~380В (01-K1)
    U62K06=/I00A05*T4U*/U62K01+U62K06
    ; 9 нет готовности привода X
    U62K08=/I00A11*T4U+U62K08
    ; 10 нет готовности привода Y
    U62K09=/I00A12*T4U+U62K09
    ; 11 нет готовности привода Z
    U62K10=/I00A13*T4U+U62K10
    ; 12 нет готовности привода B
    U62K11=/I00A14*T4U+U62K11
    ; 13 нет готовности привода T
    U62K12=/I00A15*T4U+U62K12
    ; 14 нет готовности привода S
    U62K13=/I00A10*T4U+U62K13
    ; 16 разорвана аварийная цепь
    U62K15=(/I00A06+U62K15)*[W63K3=0]*/U04A00
    ; 17 нет давления
    T12I(50)=/I02A26*/I02A27*U05A16*/U62K16
    U62K16=T12U+U62K16
    ; 18 нет давления в гидросистеме
    T13I(15)=(/I02A26+/I02A27)*/T12I*U05A16*/U62K16*/U62K17*/U62K18
    U62K17=T13U*/I02A26+U62K17*/U62K16
    ; 19 нет давления уравновешивания
    U62K18=T13U*/I02A27+U62K18*/U62K16
    ; 20 нет питания двигателя гидростанции
    T25I(5)=/I02A24*/U62K19
    U62K19=T25U+U62K19
    ; 25 низкий уровень масла в г/ст
    U62K24=(I02A28*T4U+U62K24)*/U30K00
    ; 26 ошибка реле давления г/с (30-S1) = не отключается контакт
    T3I(30)=I02A26*/U05A16*/U62K25*/U30K00
    P21=/I02A26
    ;; U62K25=T3U+U62K25*/P21
    ; 27 низкий уровень масла в бачке смазки
    U62K26=(I03A15+U62K26)*/U30K00
    ; 28 нет питания двигателя смазки напр-х
    T27I(5)=(U05A22*/I03A12+/U05A22*I03A12)*/U62K27*/U30K00
    U62K27=T27U+U62K27
    ; 29 нет питания двигателя СОЖ
    T28I(5)=(U05A17*/I01A12+/U05A17*I01A12)*/U62K28*/U30K00
    U62K28=T28U+U62K28
    ; 30 перегрузка лент. транспортёра
    ;; U62K29=((U05A18+U05A19)*I01A14*/I01A15+U62K29)*/U30K00
    ; 31 нет питания шнек.транспортёра (33-М1)
    T29I(50)=((U05A18+U05A19)*/I01A13+/U05A18*/U05A19*I01A13)*/U62K30*/U30K00
    U62K30=T29U+U62K30
    ; 32 нет питания лент.транспортёра (34-М1)
    ; T30I(5)=((U05A20+U05A21)*/I01A14+/U05A20*/U05A21*I01A14)*/U62K31*/U30K00
    ; U62K31=T30U+U62K31
    ; 33 ошибка привода Х = ошибка * гот-ть
    U63K00=I00A19*[W63K3=0]*/U62K08*/U62K15
    ; 34 ошибка привода Y = ошибка * гот-ть
    U63K01=I00A20*[W63K3=0]*/U62K09*/U62K15
    ; 35 ошибка привода Z = ошибка * гот-ть
    U63K02=I00A21*[W63K3=0]*/U62K10*/U62K15
    ; 36 ошибка привода B = ошибка * гот-ть
    U63K03=I00A22*[W63K3=0]*/U62K11*/U62K15
    ; 37 ошибка привода T = ошибка * гот-ть
    U63K04=I00A23*[W63K3=0]*/U62K12*/U62K15
    ; 40 ошибка сохр-я энергонезав.памяти
    U63K07=I00N02+/I00N01*U63K07
    ; 41 неопр. полож. выдвиж/втяг руки
    T14I(60)=/T42U*/T43U*/U63K08*U26K16
    U63K08=T14U+U63K08
    ; 42 неопр.полож. манип.вверх/вниз
    T16I(100)=/T40U*/T41U*/U63K09*U26K16
    U63K09=T16U+U63K09
    ; 43 неопр. полож. поворота руки
    T15I(50)=/T44U*/T45U*/U63K10*U26K16
    U63K10=T15U+U63K10
    ; 45 неопр. полож. ползуна
    T21I(200)=/T54U*/T55U*/U63K12*U26K16*/U30K00
    U63K12=T21U+U63K12
    ; 46 неопред. полож. зацепа 1-го с-с
    T22I(50)=/T56U*/T57U*/U63K13*U26K16*/U30K00
    U63K13=T22U+U63K13
    ; 47 неопред. полож. зацепа 2-го с-с
    T23I(50)=/T58U*/T59U*/U63K14*U26K16*/U30K00
    U63K14=T23U+U63K14
    ; 48 неопр. полож. заж/разж стола-спутника
    T24I(150)=/T52U*/T53U*/U63K15*U26K16*/U30K00
    U63K15=T24U+U63K15
    ; 49 неопр. полож. заж/разж стола
    T19I(50)=/T50U*/T51U*U26K16
    U63K16=T19U
    ; 50 неопр. полож. заж/разж инстр.
    T17I(65)=/T48U*/T49U*/U63K17*U26K16
    U63K17=T17U+U63K17
    ; 51 неопр. полож. ступеней шп-ля
    U63K18=/U04A11*/U04A12*/U68K07*U26K16*/P2
    ; 57 аварийный упор "X-"
    U63K24=I01A00
    ; 58 аварийный упор "X+"
    U63K25=I01A01
    ; 59 аварийный упор "Y-"
    U63K26=I01A02
    ; 60 аварийный упор "Y+"
    U63K27=I01A03
    ; 61 аварийный упор "Z-"
    U63K28=I01A04
    ; 62 аварийный упор "Z+"
    U63K29=I01A05
    ; 72 манипулятор не выдвинут
    U64K07=(U36K04+U36K05+U157K16+U157K19)*/T43U+U64K07
    ; 73 манипулятор не внизу = ( Т-имп +ПЧ+ПрЧ + М12+М18+М16 + занул.Т ) * /внизу
    U64K08=(P14+U36K04+U36K05+P12+P18+P16+I08K30*I08N0 4*I00K07)*U26K16*/T40U+/U158K02*U64K08
    ; 74 неопр. полож. поворота руки = ( втянуть + вверх + вниз + М12,16,18 ) * /ПЧ * /ПрЧ
    U64K09=(U36K01+U36K08+U36K09+P12+P18+P16)*/T44U*/T45U+/U158K02*U64K09
    ; 75 инстр-т в шпинделе не разжат = /инстр.разжат *(( ручн.выдв. + втянуть + М12+М18+М16 ) * Y в зоне руки + _ )
    U64K10=/T48U*((U157K15*U26K09+U36K01+U37K02+U37K17+U38K02) *U28K19+U64K10)
    ; 76 магазин не в позиции = /в зоне допуска * ( M12 + M18 + вверх + вверху ) * Т занулён
    U64K11=/T37U*(U36K08+T41U)*I03N00+/U158K02*U64K11
    ; 77 шпиндель не соориентирован = ( втянуть + вниз ) * в зоне руки * /ориент.
    U64K12=/T9U*((U36K01+U36K09)*U28K19+U64K12)
    ; 78 манипулятор не втянут = ( М12 + М18 + М16 ) * /втянут
    U64K13=/T42U*(P12+P18+P16+[C6W=2]+U64K13)
    ; 79 манипулятор у шпинделя = /выдвинут * внизу * зона руки * М19
    U64K14=/T43U*T40U*U28K19*[W3K0=19H]+U64K14
    ; 80 манипулятор не зафиксирован = ( выдвинуть + втянуть) * /внизу * /вверху + ( вверх + вниз ) * /втянут * /выдвинут
    U64K15=(U36K00+U36K01)*/T40U*/T41U+(U36K08+U36K09)*/T42U*/T43U+U64K15
    ; 81 в ячейке магазина инструмент = инстр.в маг *((М18 выдв+вверх+втянуть*/втянут)*(/инстр.в руке + T0) + втянуть * /вверху)
    U64K16=I02A15*((U37K17+U37K18+U37K19*/I02A09)*(/[W4K0=W1T3]+[W4K0=0])+U36K01*/I02A09*/I02A11)+/I04K17*/U158K02*U64K16
    ; 82 инструмент в руке у магазина = ( вверх * /выдвинут + М12 ) * инстр.в руке у маг
    U64K17=(U36K08*/T43U+P12)*U0T3+/U158K02*U64K17
    ; 83 в руке у шпинделя инструмент = М16 * в руке у шп-ля
    U64K18=P16*U0T2+U64K18
    ; 84 в шпинделе нет инструмента = /в шп-ле * S>100 * /М19 * /толчок * /проворот * /зажат
    U64K19=/U0T1*[W8K1>0H]*/U27K20*/U31K08*/U31K09*/U68K07*T49U+U64K19
    ; 86 инстр-т не зажат в шпинделе = /зажат * ( ( вверх + вниз ) * зона руки + М16 + СОЖ-имп + М8 )
    U64K21=/T49U*( (U36K08+U36K09)*U28K19+P16+U27K06*/U05A17+[W3K0=8H] )+U64K21
    ; 88 в магазине нет инструмента = / инстр. * М12 вверх + _ * /Т-строб * /особ.Пуск
    U64K23=/I02A15*U37K01+/I04K17*/U158K02*U64K23
    ; 90 ось В не в точке смены = /В0 * ( переместить ползун + разжать с-с ) * /спец.реж. + подхват
    U64K25=/U28K24*(U35K08+U35K09+U35K15+[W29K2=3]*I02N10+U64K25)*U26K16*/U30K00
    ; 91 ось Z не в точке смены = /"Z0" * циклы смены палет
    U64K26=/U28K20*([W33K0>7H]+[W33K1>0]+[W33K2>7H]+[W33K3>0]+[W34K0>7H]+[W34K1>0]+[W34K2>7H]+[W34K3>0])+U64K26
    ; 92 ось X не в точке смены = /( "X0" + "X-1000" ) * ( дв-ние ползуна)
    U64K27=/(U28K21+U28K22)*(U35K08+U35K09+[W29K2=3]*I02N10+U64K27)
    ; 93 оси не занулены = авт.реж * /оси X,Y,Z,B * гот-ть
    U64K28=U26K08*/I05K08*/I05K09*/I05K10*/U26K22*U26K16
    ; 94 СОЖ не выключена = разжать инстр * СОЖ
    U64K29=U36K12*U05A17+U64K29
    ; 97 не разжат стол-спутник = не разжат * ( ручн * (сцепить1 + к станку*расцеплен + сцепить2) + дв.полз*не расцеплен)
    U65K00=/T52U*([W29K2=3]*(I02N08+I02N10*(/T57U+/T59U)+I02N14)+(U35K08+U35K09)*(/T57U+/T59U)+U65K00)
    ; 98 возможно столкновение с-с = (дв-ние ползуна) * ( "X0" * 1сцеплен * /2 на накоп + "X-1000" * 2сцеплен * /1 на накоп )
    U65K01=(U35K08+U35K09)*(U28K21*I02A18*/I02A23+U28K22*I02A20*/I02A22)
    ; 99 стол не зажат = /зажат * зажать с-с
    U65K02=/T51U*U35K14+U65K02
    ; 100 блокировка смены с-с "М60"
    U65K03=P51+P52+P53+P54+U65K03*U31K00
    ; 101 нет 1-го с-с на накопителе = 1C + 2C + ручн
    U65K04=/I02A22*(P51+P52+[W29K2=3]*I02N08*T55U+U65K04)
    ; 102 нет 2-го с-с на накопителе = 1C + 2C + ручн
    U65K05=/I02A23*(P51+P52+[W29K2=3]*I02N14+U65K05)
    ; 103 1-й с-с на накопителе
    U65K06=I02A22*P53+U65K06
    ; 104 2-й с-с на накопителе
    U65K07=I02A23*P54+U65K07
    ; 105 манипулятор в зоне магазина = /внизу * Т-имп
    U65K08=/T40U*P14+U65K08
    ; 106 задан неправильный Т-код
    U65K09=[W4K0>30H]
    ; 108 превышено время вращения "T" = маг-н не в позиции * задание не равно положению * нет запрета на вращение
    T32I(200)=/I05K24*/([W4N1=W18K1]*[W4N2=W18K2])*/U10N16*U26K08*U26K16*/U65K11
    U65K11=T32U+U65K11
    ; 110 шпиндель вращается = /v < v_min * /M19 * разжать инстр
    U65K13=/I00A28*/U27K20*U36K12+U65K13
    ; 111 ось Х не занулена = циклы смены с-с
    U65K14=/I05K08*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K14)*U26K16
    ; 112 ось Y не занулена = циклы смены инстр-та
    U65K15=/I05K09*([W3K0=6H]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+U65K15)*U26K16
    ; 113 ось Z не занулена
    U65K16=/I05K10*([W3K0=6]+[W3K0=12H]+[W3K0=16H]+[W3K0=18H]+[W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K16)*U26K16
    ; 115 ось B не занулена
    U65K18=/U26K22*([W3K0=60H]+[W3K0=61H]+[W3K0=62H]+[W3K0=63H]+U32K30+U65K18)*U26K16
    ; 118 ось Т не занулена
    U65K21=/I03N00*(P94+U36K08+T41U+U65K21)*U26K16
    ; 137 перегрев масла в г/ст
    U66K08=I02A29+U66K08
    ; 146 ЗП: нет пит.вент. гл.привода (10-Q2) (COMU)
    T31I(5)=(U05A23*/I00A25+/U05A23*I00A25)*/U66K17*/U30K00
    U66K17=T31U+U66K17
    ; 147 ЗП: нет смазки шпинделя (запрет подачи - COMU) - не поставили РД
    ; T33I(200)=/I00A26*U04A15*/U66K18*/U30K00
    ; U66K18=T33U+U66K18
    ; 148 ЗП: нет смазки стойки (запрет подачи - COMU)
    T34I(250)=U05A09*/U66K19*/U30K00
    U66K19=T34U+U66K19*/U157K22
    ; 149 ЗП: нет смазки стола (запрет подачи - COMU)
    T35I(250)=U05A08*/U66K20*/U30K00
    U66K20=T35U+U66K20*/U157K22
    ; 153 ПП: не отключен тормоз Y = /контр.тока * питание тормоза * /ошибка
    ;; T38I(25)=/I00A08*U05A10*/U66K24
    ;; нет реле! U66K24=T38U+U66K24
    ; 155 ПП: "Y" в зоне руки (FOLD) = зона руки * /ориент * ось в движении * /ручн.перемещ.в минус * гот-ть * /SR
    U66K26=U28K19*/I00K25*I00K17*/I00K31*/U38K00*U26K16*/U30K00
    ; 156 ПП: стол-спутник не зажат (FOLD) = /с-с зажат * [запрос дв-ния XYZB] * c-c на столе * /SR
    U66K27=/T53U*[W0K2>0]*(U0T4+U0T6)*/U30K00
    ; 157 ПП: стол не зажат (FOLD) = /зажат * ( дв-ние XYZ )
    U66K28=/T51U*(I00K16+I00K17+I00K18)*/U32K30*/U30K00
    ; 158 ПП: сбой пам. инстр. в шп-ле = инстр.зажат * ( в шп-ле * T=0 + /в шп-ле * Т>0 + Т>30 ) * авт.реж. * гот-ть
    U66K29=T49U*(U0T1*[W1T1=0]+/U0T1*[W1T1>0]+[W1T1>30H])*U26K08*U26K16+U66K29
    ; 159 ПП: сбой пам. инстр. у шп-ля = ( у шп. * Т2=0 + /у шп. * T2>0 + Т2>30 ) * авт.реж * гот-ть
    U66K30=(U0T2*[W1T2=0]+/U0T2*[W1T2>0]+[W1T2>30H])*U26K08*U26K16+U66K30
    ; 160 ПП: сбой пам. инстр. у маг-на = ( у маг. * Т3=0 + /у маг. * T3>0 + Т3>30 ) * авт.реж * гот-ть
    U66K31=(U0T3*[W1T3=0]+/U0T3*[W1T3>0]+[W1T3>30H])*U26K08*U26K16+U66K31
    ; 161 ПП: шпиндель не вращается (запрет подачи N=0 или N/=Nзад) (FOLD)
    ; v<v_min * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
    U67K00=I00A28*(I05K01+I05K04+I05K05+I05K06+I05K07) *(I00K16+I00K17+I00K18)*/(U36K14+U26K20)*U26K16
    ; 162 ПП: скорость S ниже заданной (запрет подачи N=0 или N/=Nзад) (FOLD)
    ; /v=v_зад * ( G1-G3 + G81-G89 ) * (запрос дв-я XYZ) * / ( M11 + М32) * гот-ть
    T39I(10)=I00A29*/I04K16

    Тут письками меряются? Ну вот. Из текущего
    Код:
    Alarm1.00 := NOT Station.ControlOk.IN;
    Alarm1.01 := NOT Station.ControlOk.Q;
    
    Alarm1.02 := NOT Smi2.Connect;
    Alarm1.03 := NOT Mu32R_1.Connect;
    Alarm1.04 := NOT Mu32R_2.Connect;
    Alarm1.05 := NOT Mv16D.Connect;
    Alarm1.06 := NOT Mv8A.Connect;
    Alarm1.07 := NOT WB.Connect;
    (*TCP*)
    Alarm1.08 := NOT Satec1.ClientConnect;
    Alarm1.09 := NOT Satec2.ClientConnect;
    Alarm1.10 := NOT Satec3.ClientConnect;
    (*Alarm.11*)
    
    (*технологические аварии*)
    Alarm1.12 := AutoSettingWB.Active;
    Alarm1.13 := AutoSettingWB.Step = AutoSettingWB.NOT_FOUND;
    Alarm1.14 := AutoSettingWB.Step = AutoSettingWB.ERROR;
    Alarm1.15 := NOT Mu32R_1.init;
    Alarm1.16 := NOT Mu32R_2.init;
    Alarm1.17 := NOT Mv8A.init;
    
    Alarm1.18 := NOT Debug.Connect AND NOT _RUN;
    Alarm1.19 := SBA; (*SBA,LOCK,авария KK*)
    
    (*Ввод СН*)
    Alarm1.20 := NOT FaseOk;
    Alarm1.21 := BBodCH.Fase = FASE_ERR;
    Alarm1.22 := BBodCH.Fase = FASE_CBA;
    Alarm1.23 := BBodCH.LoUL.Q;
    Alarm1.24 := BBodCH.HiUL.Q;
    
    Alarm1.25 := NOT QFK1;
    Alarm1.26 := NOT QFK2;
    Alarm1.27 := NOT QFK3;
    Alarm1.28 := NOT KK1;
    Alarm1.29 := NOT KKZ;
    Alarm1.30 := NOT QFM;
    Alarm1.31 := Reset;
    
    (*Alarm2.00..11  резерв под контроль токов нагрузки -ОПРЕДЕЛИТЬ!!!*)
    
    Alarm2.12 := Connect AND Smoke.Alarm;
    Alarm2.13 := Smoke.Fire1;
    Alarm2.14 := Smoke.Fire2;
    Alarm2.15 := Smoke.Step = Smoke.xRESET_AUTO;
    Alarm2.16 := Smoke.Step = Smoke.xRESET_MANUAL;
    Alarm2.17 := Connect AND Smoke.Alarm AND NOT Smoke.AccessReset;
    Alarm2.18 := Station.Cur > 0 AND Smoke.AutoResetTen.IN; (*сбрасыввет*)
    Alarm2.19 := Smoke.AutoReset.IN; (*блокирует*)
    
    Alarm2.20 := NOT Door.CloseOk;
    Alarm2.21 := Door.LockQMZ;
    (*Alarm2.22*)
    Alarm2.23 := Connect AND NOT Door.GS1;
    Alarm2.24 := Connect AND NOT Door.GS2;
    Alarm2.25 := Door.Gate = Door.OPEN;
    Alarm2.26 := Door.Gate = Door.UNDEF; (*неясное состояние ворот*)
    
    Alarm2.27 := MG.FixAlarmGe12Ok.Q; (*QFG/GE12/KG1*)
    Alarm2.28 := MG.sbPress1;
    Alarm2.29 := MG.sbPress2;
    Alarm2.30 := NOT MG.Enable;
    Alarm2.31 := MG.Manual.Q;
    
    Alarm3.00 := QMZ[1].SelfAlarm;
    Alarm3.01 := NOT QMZ[1].QF;
    Alarm3.02 := NOT QMZ[1].SelfAlarm AND QMZ[1].QF AND QMZ[1].Lock;
    Alarm3.03 := QMZ[1].AlarmBack.Q;
    Alarm3.04 := QMZ[1].Mode = QMZ_OFF;
    (*Alarm3.05*)
    
    Alarm3.06 := QMZ[2].SelfAlarm;
    Alarm3.07 := NOT QMZ[2].QF;
    Alarm3.08 := NOT QMZ[2].SelfAlarm AND QMZ[2].QF AND QMZ[2].Lock;
    Alarm3.09 := QMZ[2].AlarmBack.Q;
    Alarm3.10 := QMZ[2].Mode = QMZ_OFF;
    (*Alarm3.11*)
    
    Alarm3.12 := QMZ[3].SelfAlarm;
    Alarm3.13 := NOT QMZ[3].QF;
    Alarm3.14 := NOT QMZ[3].SelfAlarm AND QMZ[3].QF AND QMZ[3].Lock;
    Alarm3.15 := QMZ[3].AlarmBack.Q;
    Alarm3.16 := QMZ[3].Mode = QMZ_OFF;
    (*Alarm3.17*)
    
    Alarm3.18 := Temperature.Room.Lock;
    Alarm3.19 := NOT Temperature.Room.Lock AND Station.Cur > 0 AND Temperature.Room.AutoReset.IN;
    Alarm3.20 := Station.Cur = 0 AND Temperature.Room.AutoReset.IN;
    
    Alarm3.21 := Temperature.Room.TE1.Error;
    Alarm3.22 := Temperature.Room.TE1.FixCri.Q;
    Alarm3.23 := Temperature.Room.TE1.Hi; (*За 5гр до T_Cri*)
    
    Alarm3.24 := Temperature.Room.TE2.Error;
    Alarm3.25 := Temperature.Room.TE2.FixCri.Q;
    Alarm3.26 := Temperature.Room.TE2.Hi;
    (*Alarm3.27..31*)
    
    Alarm4.00 := NOT Fan[1].QFB;
    Alarm4.01 := Fan[1].FixAlarmKMB.Q;
    Alarm4.02 := Fan[1].CheckAmper.Lock;
    Alarm4.03 := Fan[1].CheckAmper.FixLo.Q;
    Alarm4.04 := Fan[1].CheckAmper.FixHi.Q;
    
    Alarm4.05 := NOT Fan[2].QFB;
    Alarm4.06 := Fan[2].FixAlarmKMB.Q;
    Alarm4.07 := Fan[2].CheckAmper.Lock;
    Alarm4.08 := Fan[2].CheckAmper.FixLo.Q;
    Alarm4.09 := Fan[2].CheckAmper.FixHi.Q;
    
    Alarm4.10 := NOT Fan[3].QFB;
    Alarm4.11 := Fan[3].FixAlarmKMB.Q;
    Alarm4.12 := Fan[3].CheckAmper.Lock;
    Alarm4.13 := Fan[3].CheckAmper.FixLo.Q;
    Alarm4.14 := Fan[3].CheckAmper.FixHi.Q;
    
    Alarm4.15 := NOT Fan[4].QFB;
    Alarm4.16 := Fan[4].FixAlarmKMB.Q;
    (*Alarm4.17..19*)
    
    Alarm4.20 := M4VS.VS.Alarm;
    Alarm4.21 := NOT M4VS.QF;
    Alarm4.22 := M4VS.VsAi.Pos <= VS_Ai_POS_ALARM;
    Alarm4.23 := M4VS.VS.FixAlarmCloseOff;
    Alarm4.24 := M4VS.VS.FixAlarmCloseOn;
    Alarm4.25 := M4VS.VS.FixAlarmOpenOff;
    Alarm4.26 := M4VS.VS.FixAlarmOpenOn;
    (*Alarm4.27..31*)
    
    Alarm5.00 := Connect AND NOT Section[1].TK1;
    Alarm5.01 := Connect AND NOT Section[1].TK2;
    Alarm5.02 := Section[1].Cur > 0 AND Section[1].AutoReset.IN;
    Alarm5.03 := Section[1].Cur = 0 AND Section[1].AutoReset.IN;
    
    Alarm5.04 := Connect AND NOT Section[2].TK1;
    Alarm5.05 := Connect AND NOT Section[2].TK2;
    Alarm5.06 := Section[2].Cur > 0 AND Section[2].AutoReset.IN;
    Alarm5.07 := Section[2].Cur = 0 AND Section[2].AutoReset.IN;
    
    Alarm5.08 := Connect AND NOT Section[3].TK1;
    Alarm5.09 := Connect AND NOT Section[3].TK2;
    Alarm5.10 := Section[3].Cur > 0 AND Section[3].AutoReset.IN;
    Alarm5.11 := Section[3].Cur = 0 AND Section[3].AutoReset.IN;
    
    (*Alarm5.12..15*)
    
    (*Предупры !*)
    Alarm5.16 := Debug.ignorUser;
    Alarm5.17 := Debug.ignorSpecial;
    (*Alarm5.18..19*)
    
    Alarm5.20 := Autotest.Active;
    Alarm5.21 := Sirena.Q;
    Alarm5.22 := M4VS.Heat.Manual.Q;
    (*Alarm5.23..31*)
    
    Alarm6.00 := NOT Satec1.Access;
    Alarm6.01 := NOT Satec1.ActualData.Q; (*авария*)
    Alarm6.02 := Satec1.ActualData.Q AND Satec1.Original.Montage <> Set.Satec.Montage;
    Alarm6.03 := QFM AND Satec1.Fase = FASE_ERR;
    Alarm6.04 := Satec1.Fase = FASE_CBA;
    (*Alarm6.05*)
    
    Alarm6.06 := NOT Satec2.Access;
    Alarm6.07 := NOT Satec2.ActualData.Q; (*авария*)
    Alarm6.08 := Satec2.ActualData.Q AND Satec2.Original.Montage <> Set.Satec.Montage;
    Alarm6.09 := QFM AND Satec2.Fase = FASE_ERR;
    Alarm6.10 := Satec2.Fase = FASE_CBA;
    (*Alarm6.11*)
    
    Alarm6.12 := NOT Satec3.Access;
    Alarm6.13 := NOT Satec3.ActualData.Q; (*авария*)
    Alarm6.14 := Satec3.ActualData.Q AND Satec3.Original.Montage <> Set.Satec.Montage;
    Alarm6.15 := QFM AND Satec3.Fase = FASE_ERR;
    Alarm6.16 := Satec3.Fase = FASE_CBA;
    (*Alarm6.17*)
    (*Alarm6.18..19*)
    
    Alarm6.22 := Set.Fan.A_x10[1] = NON_A_x10;
    Alarm6.23 := Set.Fan.A_x10[2] = NON_A_x10;
    Alarm6.24 := Set.Fan.A_x10[3] = NON_A_x10;
    (*Alarm6.25*)
    
    Alarm6.26 := (Set.MaskHide[1] AND 16#0003_FFFF) > 0;
    Alarm6.27 := (Set.MaskHide[1] AND 16#FFFC_0000) > 0 OR (Set.MaskHide[2] AND 16#0000_000F) > 0; 
    Alarm6.28 := (Set.MaskHide[2] AND 16#003F_FFF0) > 0;
    (*Alarm6.29*)
    
    Alarm6.30 := Panel.btnUp AND Panel.btnDown;
    Alarm6.31 := Panel.SelectN1 AND Panel.SelectN3;
    
    (*Alarm7.00..8.31 (*индивидуальные блокировки объектов, в цикле*)
    SetIndyLock();
    Цитата Сообщение от Geenerator Посмотреть сообщение
    ..
    Валенок, я уже сообщил модератору о вашем не корректном поведении в теме.
    ...........................
    Изображения Изображения
    Последний раз редактировалось Валенок; 25.04.2025 в 00:11.

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 08.01.2025, 19:16
  2. ПР200 на троичной логике
    от Geenerator в разделе Программируемые реле
    Ответов: 177
    Последнее сообщение: 04.07.2021, 21:14
  3. ПР200 + ПР200 (или МВ110, МУ110)
    от antonlis в разделе Программируемые реле
    Ответов: 32
    Последнее сообщение: 27.06.2017, 12:07
  4. ПР200 Пропадание связи USB - ПР200. Решено
    от PGK в разделе Программируемые реле
    Ответов: 0
    Последнее сообщение: 18.01.2017, 11:37
  5. ПР200+НПТ1 Пределы измерения ПР200 в режиме 4-20ma
    от Алексей Геннадьевич в разделе Программируемые реле
    Ответов: 13
    Последнее сообщение: 06.04.2016, 20:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •