Commit Graph

111 Commits

Author SHA1 Message Date
DESKTOP-OKMOOJ9\MK 86af260ad6 [Common]
InterlockManagerBase的Initialize()方法新增对配置文件的Action节点ignoreReverse属性的支持,允许将Action配置为忽略Limit命中后翻转电平动作。
2023-08-30 23:06:49 +08:00
SL 75c5abf732 [Common]
新增Credential对象,准备用于WCF访问验证。
2023-08-29 18:02:30 +08:00
SL 788333d6e6 Merge branch 'develop' into feature/bind-interlock-manager-to-module 2023-08-25 17:23:53 +08:00
SL 0aad2d5852 [RT.Equipment]
IoMFC增加两个配置:Valve和DisableFbSpErrMonWhenValveClosed,允许仅当Valve打开时进行Feedback-SetPoint误差监测。
优化ErrorDetectableBaseDevice、IoMFC代码结构。
2023-08-25 16:05:19 +08:00
SL e7ad49b615 [Common]
修正LOG消息中缺少Level信息的问题。

(cherry picked from commit 48480ad733)
2023-08-22 10:32:51 +08:00
SL eb4925f5ec [Common]
修正InterlockManagerBase的Initialize方法中,如果Action重复,Debug.Assert判断逻辑错误导致没有提示的问题。
优化InterlockActionBase的IsSame方法,忽略DO名称大小写。
2023-08-21 11:51:09 +08:00
SL fe947f0e5a [Common]
InterlockManagerBase对象的Initialize方法中增加Action是否已经存在的判断,同一个Action仅允许定义一次。
2023-08-21 11:33:12 +08:00
SL 2b2b2e2051 [Common]
优化IInterlockAction和InterlockActionBase代码,整理注释。
2023-08-21 11:32:01 +08:00
SL f59093980c [Common]
InterlockDaemonAction对象Monitor方法中输出信息的等级修改为Info。
InterlockDaemonAction对象Monitor方法中如果SetDo失败,输出错误信息到日志,而不是PostWarningLog。
2023-08-18 10:06:41 +08:00
SL 07d4c4b792 [Common]
修正InterlockDaemonManager的Monitor方法输出Limit命中信息时错误使用Limit.Description属性的问题。
2023-08-17 17:39:50 +08:00
SL 48480ad733 [Common]
修正LOG消息中缺少Level信息的问题。
2023-08-17 17:21:04 +08:00
SL 8e55cb9782 [Common]
修正AiLimit返回CurrentValue产生转换异常的问题。
修正InterlockDaemonAction的Monitor方法输出的信息缩进错误的问题。
2023-08-17 16:38:08 +08:00
SL 9690d35a11 [Common]
修正BoolDataPollLimit和DoubleDataPollLimit中CurrentValue的处理逻辑,当Data.Poll返回null时,CurrentValue强制返回无法使当前Limit命中的值,以避免Limit意外触发。
IInterlockLimit接口增加Description属性。
IInterlockLimitDataProvider接口中增加Description属性。
从InterlockManagerBase中移除_dicLimit字段。
IoValueProviderBase中的Name属性返回IO名称,包含地址的IO全名通过Description属性返回。
2023-08-17 15:44:38 +08:00
SL 74c2f66484 [Common]
将字段_dicLimitToActionMap、_dicLimitPerModule从InterlockManager对象移至InterlockManagerBase对象。
优化InterlockManager对象的Initialize方法,精简代码。
优化Interlock相关对象的目录结构和命名空间。
2023-08-17 09:43:24 +08:00
SL 75a3a81bc7 [Common]
InterlockManagerBase新增_dicLimits字段,确保相同条件的Limit仅创建一个实例。
修正InterlockManager对象创建_dicLimitToActionMap字典错误的问题。
2023-08-17 01:24:28 +08:00
SL babf55f5d8 [Common]
修正InterlockManagerBase的Initialize方法判断配置文件的Root节点名称时,不同派生类使用不同名称导致加载失败的问题。
修改InterlockManager对象的基类为InterlockManagerBase,并删减重复的代码。
2023-08-17 01:10:47 +08:00
SL 243d9a89fb [Common]
新增IInterlockAction接口。
新增InterlockManagerBase对象,整合InterlockManager和InterlockDaemonManager公共代码。
2023-08-16 15:21:02 +08:00
SL a018001cac [Common]
优化InterlockDaemonManager对象,增加Limit OR逻辑定义的支持。
新增InterlockActionBase对象,简化代码。
2023-08-16 15:06:29 +08:00
SL 168fc69d6f [Common]
InterlockManager初始化时检查传入的配置文件是否不存在。
修正InterlockDaemonManager中Daemon节点拼写错误的问题。
2023-08-15 18:10:11 +08:00
SL 65cc498516 [Common]
整理InterlockDaemonManager代码结构。
2023-08-15 17:36:37 +08:00
SL 4ba62bfbbf [UI.Core]
移除EngMode相关的Converters。

[UI.Client]
ModuleStatusIndicator对象增加Warning图标和Warning图标Tips。

[RT.Equipment]
PMModuleBase对象新增IsInterlockBypassed属性,用于指示PM模组是否旁路互锁。
2023-08-15 15:36:38 +08:00
SL 7ae695656b 优化Interlock系统,增加Interlock Daemon相关对象,用于在后台监测数据,并自动设置DO输出。 2023-08-10 16:44:46 +08:00
SL 742726ae32 移除全局BypassInterlock系统参数,现在可针对每个Module单独配置。
InterlockManager中增加SetEventLevel()方法,当PM进入Service模式时,允许将Interlock事件打印信息的等级降为Info。
移除BypassEnableTable系统参数。
2023-08-09 17:57:50 +08:00
hanqiangqiang d87dc6460d [Common]
ErrorDetectableBaseDevice类中添加参数设置后添加回调功能
2023-08-08 11:24:51 +08:00
HCL 670a5004c1 1.解决保存新列数据存在的问题 2023-07-24 11:18:29 +08:00
HCL 46b936986c Merge branch 'develop' into feature/整理优化数据库代码 2023-07-24 08:32:47 +08:00
SL d425b908c8 [Common]
BaseDevice对象中新增函数LoadSC(),用于解析并加载指定的系统配置项,并处理加载时的各种异常。

[RT.EqupmentLibrary]
IoPSU的LoadConfig()方法调用LoadSC(),简化代码结构。
2023-07-19 17:46:42 +08:00
HCL 4e3c195816 1.事务处理更新 2023-07-18 14:19:03 +08:00
HCL 485890a415 1.优化数据库 2023-07-13 12:28:37 +08:00
HCL 1d4bd66a19 1.数据库代码整理进度更新 2023-07-10 18:21:15 +08:00
HCL 1c2a89e53f 1.修改切换数据库问题 2023-06-28 18:26:50 +08:00
HCL 040b11a94f 1.整理数据库进度更新 2023-06-28 15:29:13 +08:00
HCL c4b38cc0dd 1.进度更新 2023-06-27 15:46:42 +08:00
SL ccea5a5272 [Common]
EventEnum枚举中的PjDone项更名为PJ_DONE。
2023-06-25 15:04:04 +08:00
SL 770e917a3c [Common]
EventEnum枚举中新增PjDone = 50。
DefaultRecipeFileContext中的EV.PostMessage()方法中,使用ModuleName.System.ToString()代替硬编码的"System"字符串。
2023-06-25 14:32:11 +08:00
SL 98d706bd4b [Common]
EventItem对象中新增属性AcknowledgedTime,记录事件被响应的时间。

[UI.Client]
新增EventLevelToBackgroundConverter对象。
AlarmItem对象的Type属性更名为Level,并新增LevelString属性。
AlarmItem对象中移除TextColor属性,使用EventLevelToBackgroundConverter在视图中进行转换。
2023-06-22 17:10:32 +08:00
SL 91238063d1 [Common]
移除EventItem对象中的IsMute属性,使用IsAcknowledge属性判断事件是否已被响应。
修改EventManager中的事件响应逻辑,用是否响应代替原静音逻辑。
2023-06-22 09:22:44 +08:00
SL b2ed7e0e6a [Common]
修正EventManager对象中的System.HasActiveAlarm数据没有从Alarm列队中获取信息导致始终返回false,导致UI的Alarm按钮不会变色的问题。
优化AppMenu.cs的代码格式。
2023-06-22 09:07:10 +08:00
SL 8216f9879b [Common]
EventManager中注册新操作用于测试Warning、Alarm、PjDone事件。

[UI.Client]
新增EventGenerator视图,用于测试事件。
2023-06-22 00:17:41 +08:00
SL d8ef042dd7 [Common]
在EventManager对象中注册System.LiveAlarmEvent、System.HasMutedAlarmEvent等数据,供三色灯使用。
整理EventManager.cs代码格式。
整理DeviceManagerBase.cs代码格式。
更名EventDefine对象的Items属性为Types。
移除EventItem的Mute()方法,并将IsMute属性的set段作用域变更为public。
2023-06-21 23:04:19 +08:00
SL b21ac05ca8 [Common]
EventItem对象中新增属性IsMute和方法Mute(),用于使当前事件静音。
EventItemManager对象中实现事件静音控制逻辑。
2023-06-21 15:28:38 +08:00
Liang Su 0063ec83f9 [Common]
修正DeviceManagerBase中的_optionDevice列表多线程访问时被意外修改的问题。
2023-06-14 16:05:58 +08:00
Liang Su 1b57215251 [Common]
整理代码,优化结构,增加必要的注释。
2023-06-12 11:31:58 +08:00
DESKTOP-1N1NK8A\auvkk e31e0426cc [Common]
修正InterlockManager的Monitor()方法中遍历互锁条件字典时可能引发“集合已修改”异常的问题。fix #1
2023-05-13 10:13:55 +08:00
DESKTOP-1N1NK8A\auvkk 54982e8500 [Common]
优化多行Log的缩进,使多行Log的消息体文本左对齐。
Log相关的对象添加注释。

[UI.Client]
RecipeData对象构造时输出气体流量计算器对象全名日志以方便问题排查。
2023-05-12 18:10:40 +08:00
DESKTOP-1N1NK8A\auvkk 52466888d5 [Common]
IDevice接口和Entity对象中新增IsEnabled属性。

[RT.EquipmentLibrary]
从SicServo移除Monitor()方法并重载HandleMonitor()方法。
移除TcAds对象的IsEnabled属性。
移除RorzeEfem对象的IsEnabled属性。
修正AlarmView视图中Alarm详细信息中的显示错误并优化信息显示的代码。
2023-05-09 18:11:51 +08:00
DESKTOP-1N1NK8A\auvkk dd93d58fef [Common]
优化BaseDevice对象
增加新属性IsEnabled,用于指示当前设备是否被禁用。
增加Monitor()和HandleMonitor()方法,用于处理IsEnabled逻辑。
增加注释信息。
2023-05-09 16:01:15 +08:00
DESKTOP-1N1NK8A\auvkk a7786e6563 [Common]
整理EventItem格式,添加注释。
添加注释到EventLevel和EventType枚举定义。
2023-05-09 14:16:43 +08:00
DESKTOP-1N1NK8A\auvkk 06e08b1cc9 [Common]
新增FileSystemWatcherManager,支持监视指定的配置文件,当发生变更时可以实时加载并刷新系统,而不需要重启RT。
优化SignalTowerBase,添加STEvent配置文件监视功能,当配置发生变化时实时生效,而不需要重启RT。
新增属性,BaseDevice新增SyncRoot,当跨线程操作时提供锁定机制。
2023-05-08 14:59:31 +08:00
DESKTOP-1N1NK8A\auvkk f4963bf04a [Common]
修改BaseDevice为abstract对象。
修改STBlinkPattern对象构造函数的参数类型,从int改为uint。
修改STBlinkPattern对象的无参构造函数,设置各属性默认值。

[EquipmentLibrary]
重命名IoSignalTowerLight为IoSignalTowerPart,使其意义更准确。
IoSignalTower对象中新增函数Blink(),用于闪烁指定的元件。
2023-04-25 10:01:43 +08:00
DESKTOP-1N1NK8A\auvkk 2ec983b465 [Common]
修正InterlockLimit对象的输出信息格式。
修正IoValve中触发Interlock后重复输出信息的问题。
2023-04-24 14:14:08 +08:00
DESKTOP-1N1NK8A\auvkk be713cd7af [Common]
优化InterlockAction的CanDo函数的互锁信息生成方法。
修正InterlockLimitRangeDouble构造函数错误抛出InvalidCastException异常的问题。
修正InterlockLimitRangeInt和InterlockLimitRangeShort未实现字串解析构造函数的问题。
修正InterlockManager的CreateInterlockLimit函数中未将新生成的InterlockLimit对象添加到_dicLimitToActionMap字典中的问题。
移除IOType对象中的ToIoType()扩展方法,因为IO的前缀为ModuleName,而不是DI_、DO_等。
2023-04-24 11:54:06 +08:00
DESKTOP-1N1NK8A\auvkk ffa3b8ceb3 [Common]
Aitex\Core\RT\IoCore下新增Interfaces文件夹,存放IoCore中定义的接口文件。
2023-04-23 16:46:17 +08:00
DESKTOP-1N1NK8A\auvkk 1248151339 [Common]
重写InterlockManager,使代码更易于维护和易读。
新增AiLimit和AoLimit对象。
新增IIOAccessor接口,并IOAccessor对象继承自此接口。
新增接口
新增IAnalogInterlockLimitRange接口,及其实现对象InterlockLimitRangeDouble、InterlockLimitRangeInt、InterlockLimitRangeShort,用于存储和判断模拟IO的互锁条件。
新增InvalidIoNameException、InvalidIoTypeException、IoNotFoundException对象。
新增扩展方法ToIoType(),用于从IO名称中解析IO的类型。
优化InterlockLimit对象,泛型定义中增加IOAccessor类型定义,将其对应的IO对象放在基类中,以简化DiLimit、DoLimit、AiLimit、AoLimit对象。
2023-04-23 16:43:08 +08:00
DESKTOP-1N1NK8A\auvkk 21e94b96fd [Common]
新增IInterlockLimit接口,并将InterlockLimit改为泛型对象,以支持模拟量判断。
移除CustomLimitBase对象。
优化Interlock相关对象的代码结构,增加注释,为docfx做好准备。
2023-04-21 17:56:29 +08:00
DESKTOP-1N1NK8A\auvkk d46c3afeb3 [Common]
修正Aitex\Core\RT\Log\中的文件未被添加到Git仓库的问题。
2023-04-21 11:17:09 +08:00
DESKTOP-1N1NK8A\auvkk b5dd5532ea [Common]
SCConfigItem对象新增函数SafeSetValue和SetValue,用于处理系统设置项参数写入逻辑;从SystemConfigManager中移除相关逻辑,以简化代码。
SCConfigItem中新增OnValueChanged事件,设置值发生变化时的回调函数在此处理,不再有SystemConfigManager处理,以简化代码结构。
移除ISCManager接口及其实现中的SetItemValueStringFormat和SetItemValueFromString函数。
2023-04-20 15:03:58 +08:00
DESKTOP-1N1NK8A\auvkk 76467deb9b [Common]
SystemConfigManager增加回调函数注册,支持当指定的项目值发生变化时,调用指定的函数。
TimeDomainArithmeticMeanFilter的FilterDurationInSec属性增加set方法。

[EquipmentLibrary]
IoSensorAnalog新增对相关系统配置项的监视,当配置值发生变化时,实时生效,避免重启软件。
IoSensorWaterFlowTemp修改同上。
2023-04-20 14:26:02 +08:00
DESKTOP-1N1NK8A\auvkk b7a0b6d618 [Common]
优化BaseDevice对象,新增用于解析Xml配置的构造函数,修正其子类的ScBasePath中如果定义了{module},没有自动替换为Module名称的问题。
移除ErrorDetectableBaseDevice构造函数中解析Xml并初始化相关属性的代码。
新增SicMath命名空间,并新增时域信号算数平均滤波器。

[EquipmentLibrary]
新增IoSensorAnalog对象,用于监测模拟信号并产生警告和报警事件。
新增IoSensorWaterFlowTemp对象,用于自动监测水温并输出用于互锁的DO信号。
移除IoInterLock对象中监测水温并设置相关DO的代码。
移除IoSensor构造函数中解析Xml并初始化相关属性的代码。
移除IoPressureMeter构造函数中解析Xml并初始化相关属性的代码。
2023-04-19 15:38:04 +08:00
DESKTOP-1N1NK8A\auvkk 1e1233ea74 [Common]
新增ErrorDetectableBaseDevice对象。
新增ReleaseNote,md文件。

[RT.EquipmentLibrary]
移除对象IoMfc、IoMfc2、IoMfc3。
增加基于ErrorDetectableBaseDevice的IoMfc和IoPressure对象。
2023-04-17 17:05:49 +08:00
DESKTOP-GPE37UV\THINKAPD 1ace450916 Add project files. 2023-04-13 11:51:03 +08:00