在库事务履历(TRANSACTION)能追溯到电脑名吗?

本文讨论了在生产实绩输入系统中因相似料号导致的责任追溯问题。当前系统仅记录USERID,无法直接追溯到具体操作电脑。文章探讨了实现追溯至特定电脑的方法,并询问社区是否有类似经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个问题请教大家:
在生产现场作生产实绩输入系统的时候,用户名都是一样的.
但现在有一个问题是有的部门间的料号非常相似,会产生错误
输入的问题,由于USERID是一样的,无法区分责任.如果要
区分责任,必须要能追溯到电脑名,但现在我们的TRANSACTION
只能查到USERID,不能查到具体操作的电脑名?

1.各位所见识过的系统中,是否有能追溯到电脑名的?
2.从开发的角度来说应该怎么做?
64.gif

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12391917/viewspace-247731/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12391917/viewspace-247731/

内容概要:文章详细介绍了电梯门禁(梯控)系统的硬件安装与接线要点。首先强调了梯控板与楼层按键对接的重要性,包括遵循一一对应原则以避免错层、越层问题,允许空层存在以适应实际需求。接着阐述了不同接线方式(COM、NO、NC端口的不同组合)对用户权限的影响,如单层权限用户刷卡直达指定楼层,多层权限用户在特定接线方式下的操作限制。硬件安装方面,强调了无源干触点设计原则以确保电气隔离,防止系统间干扰,以及读卡器接入时的规范要求。文章还介绍了梯控系统的技术原理,如身份验证机制(二维码/IC卡/人脸识别)、消防联动功能(紧急情况下释放所有楼层权限),并指出该系统适用于小区、写字楼等场景,支持机器人乘梯SDK扩展。最后,根据不同场景需求提出了适用的接线方式选择,如严格管控场景下选择4.3接线以实现精准权限控制,限制多层用户手动选层场景下选择4.1接线并配合软件权限设置。; 适合人群:从事电梯安装维护的技术人员、楼宇自动化工程师及相关领域的管理人员。; 使用场景及目标:①指导技术人员正确安装和接线梯控系统,确保系统安全稳定运行;②帮助管理人员了解不同接线方式对用户权限的影响,以便根据实际需求选择合适的配置方案;③提升楼宇安全管理和服务质量,特别是在小区、写字楼等场所的应用。; 其他说明:梯控系统的正确安装和接线不仅关系到系统的正常运作,更直接影响到用户的安全和使用体验。因此,在实际操作中务必严格按照规范执行,同时关注最新的技术发展和应用场景变化,以确保系统始终处于最佳状态。
在UVM(Universal Verification Methodology)中,处理复杂的事务并将其传递到测试中涉及几个关键步骤。UVM是一种用于设计和实现复杂硬件验证环境的验证方法学,它建立在SystemVerilog语言之上。以下是在UVM的sequence中处理复杂事务并传递到测试中的基本步骤: 1. 定义事务Transaction)类:首先需要定义一个事务类,它继承自`uvm_sequence_item`。在这个类中定义所有事务的参数和方法。例如,如果事务是一个数据包,可能包括地址、数据和控制信号等字段。 ```systemverilog class my_transaction extends uvm_sequence_item; rand bit [31:0] address; rand bit [31:0] data; rand bit write_enable; // Constraints, methods and other definitions... function new(string name = "my_transaction"); super.new(name); endfunction endclass ``` 2. 创建序列(Sequence)类:定义一个序列类,继承自`uvm_sequence`。在这个类中,你可以创建事务实例,并定义如何生成这些事务。可以使用`start_item`和`finish_item`方法来发送事务到驱动程序(driver)。 ```systemverilog class my_sequence extends uvm_sequence #(my_transaction); `uvm_object_utils(my_sequence) virtual task body(); my_transaction tr; forever begin tr = my_transaction::type_id::create("tr"); start_item(tr); if (!tr.randomize()) `uvm_error("RAND FAIL", "Failed to randomize transaction") finish_item(tr); end endtask endclass ``` 3. 驱动事务:在驱动程序中,需要处理从序列接收到的事务,并将其转换为硬件接口上的信号。 ```systemverilog class my_driver extends uvm_driver #(my_transaction); // Implement the driver's tasks to process transactions... endclass ``` 4. 在测试(Test)中启动序列:在测试类中,启动序列实例,并将驱动程序连接到序列。 ```systemverilog class my_test extends uvm_test; `uvm_component_utils(my_test) my_driver driver; my_sequence seq; virtual function void build_phase(uvm_phase phase); super.build_phase(phase); driver = my_driver::type_id::create("driver", this); seq = my_sequence::type_id::create("seq"); endfunction virtual task run_phase(uvm_phase phase); phase.raise_objection(this); seq.start(driver); phase.drop_objection(this); endtask endclass ``` 以上步骤描述了如何在UVM环境中处理复杂的事务。为了将这些事务传递到测试中,需要在测试阶段启动序列,并且驱动程序需要能够接收这些事务并将其应用于DUT(Device Under Test)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值