研华继电控制器4000系列(如4068、4069等)编程说明
研华模块Adam4000_产品规格说明书

研华模块Adam4000_产品规格说明书Adam4000系列产品规格说明书(本说明书说明驱动产品的功能,性能指标,是测试⼯程师、⽂档⼯程师和开发⼈员交流的重要依据,是编写测试⽤例和帮助⽂档的重要依据。
下边⼏项是必须填写的,如果还有需要说明的部分,需要编写更多的内容)[项⽬经理填写]项⽬背景:⼀、产品功能简介Adam4011是热电偶输⼊模块,包括⼀路模拟量输⼊、2路数字量输出、⼀路数字量输⼊。
Adam4011D是带液晶显⽰的输⼊模块,包括⼀路模拟量输⼊、2路数字量输出、⼀路数字量输⼊。
Adam4012是模拟输⼊模块,⼀路模拟量输⼊、2路数字量输出、⼀路数字量输⼊。
Adam4013是模拟量输⼊模块,⼀路模拟量输⼊。
Adam4014D是带液晶显⽰的模拟输⼊模块,有⼀路模拟输⼊,2路数字量输出,⼀路数字量输⼊。
Adam4015是热电阻输⼊模块,六路模拟量输⼊Adam4016是应变计输⼊模块,⼀路模拟量输⼊、4路数字量输出。
Adam4017是16位8通道模拟量输⼊模块,6路双端,2路单端模拟量输⼊。
Adam4017+是16位8通道双端模拟量输⼊模块。
Adam4018是16位8通道模拟输⼊数据记录模块,6路双端模拟量输⼊,2路单端模拟量输⼊。
Adam4018+是16位8通道热电偶输⼊模块。
Adam4018M是16位8通道模拟输⼊数据记录模块,6路双端模拟量输⼊,2路单端模拟量输⼊。
Adam4019是模拟量输⼊模块,8路模拟量输⼊。
Adam4021是模拟量输出模块,⼀路模拟量输出。
Adam4022T可以通过软件来进⾏PID参数设定,还可以通过软件将其设置为简单的模拟量I/O模块。
Adam4024是模拟量输出模块,4路模拟量输出,4路数字量输⼊。
Adam4050是数字I/O模块,7通道数字量输⼊,8通道数字量输出。
Adam4051是16路数字量输⼊模块。
Adam4052是8路带隔离数字量输⼊模块,6路双端数字量输⼊,2路单端数字量输⼊。
C4000中文操作手册

• 产品组态
对那个产品进行组态? P01 ... P08 (1-8 种产品用户自行定义) • 定义产品名称 新名字: • 定义结果 M01 ... M04 (1-4 种结果用户自行定义) 定义名称 功能 X 毫安输入 X 线性化 量程起点 量程终点 单位 格式 • 线性化定义 需要定义那组线性表? L01 ... L16 (1 - 16 个线性段/ 用户自行定义) 起名 01 ... 11个点对应的输入输出 • 设定报警点 那个继电器节点输出需要设定? 报警输出 01 到 报警输出 03 结果 报警点设定 多少秒后报警 报警类型
按下 CLEAR 键
12
C4000 型控制器
3 基础设定
3.2 菜单语言选择Language assortment
进入到菜单页选择合适的 语言 用▲▼键选择 LANGUAGE/SPRACHE 条目,然后ENTER确认
则得到根目录Language / Sprache下面的子目录显 示, 用▲▼键选择所要的 语言,按键ENTER.确认选 择的语言。
Optek输入 通道1 通道2 通道3 通道4
毫安输入 毫安输入1 毫安输入2
传感器1系统数据 型号 系列号 光程长 波长 Optek输入端 电缆长
传感器2系统数据 型号 系列号 光程长
10
C4000 型控制器
波长 Optek输入端 电缆长
• 服务
系统清零设定 系统诊断 传感器匹配
功能 系数 毫安输入校准 毫安输入 校准 毫安输出校准 毫安输出 校准 服务
页码
4 5
6 7 8
12 13 14 15 16 18
19 20 21 22 23 24 25 26 27
研华模块命令集介绍

研华ADAM-4000命令集简介目录前言 (2)一.模拟量输入模块命令 (2)1.%AANNTTCCFF (2)2.$AAM (5)3.#AA (5)4.#AAN (5)5.$AA3 (6)二.模拟量输出模块命令 (6)1.%AANNTTCCFF (6)2.#AA(data) (8)3.$AA8 (8)4.$AAM (8)三.数字量输入/输出模块和继电器模块命令 (9)1.%AANNTTCCFF (9)2.$AA6 (10)3.#AABB(data) (11)4.$AAM (11)四.计数器模块命令 (12)1.%AANNTTCCFF (12)2.$AAM (13)3.#AAN (13)4.$AA6N (14)5.$AA7N (14)6.$AA1H(data) (15)7.@AADO(data) (15)8.@AADI (16)前言为了避免上位机同时发送指令,出现通讯错误的现象,故上位机要发送指定的命令代码来实现对模块的控制。
研华所有ADAM模块都支持研华协议(即ASCII协议),部分模块支持工业标准的Modbus RTU协议,本文主要分四个部分介绍研华协议常用的命令集。
研华指令集通用的语法格式为:[delimiter character][address][command][data][checksum] [carriage return]注意:所有命令都要求是大写字母。
一.模拟量输入模块命令1.%AANNTTCCFF支持的模块:4011、4011D、4012、4013、4015、4015T、4016、4017、4017+、4018、4018+、4018M、4019+命令功能:设模块地址、输入范围、波特率、数据格式、校验和状态、积分时间符号说明:%为前缀符AA为模块当前的地址(16进制数),范围为00H~FFHNN为想设置的模块地址(16进制数),范围为00H~FFHTT为输入范围的代码值CC为波特率代码值FF为一个八位的16进制数来设置数据格式、校验和状态、积分时间。
WD-4000控制器说明书

WD-4000变频恒压供水电脑控制器使用手册目录系统概述 (2)主要性能指标 (2)安装尺寸和接线端子说明 (3)操作面板指示及参数设定说明 (4)参数列表及参数出厂默认值 (6)恢复系统参数出厂值 (6)系统参数功能详细说明 (9)故障显示代码说明 (16)外部输入信号端子说明 (16)系统当前时间的调整 (16)手动临时开机的调整 (16)外部输出端子与部分变频器端子的连接表 (17)控制器与压力变送器的连接 (18)RS485远程通讯接口 (18)一、系统概述WD-4000系列微电脑变频供水/补水控制器是专为变频恒压供水系统和锅炉及换热系统补水而设计的电脑控制器,可与各种品牌的变频器配套使用。
具有压力控制精度高、压力稳定、第二消防压力(动压)设定、系统超压泄水自动控制、设定参数密码锁定等多项功能。
二、主要性能指标1.可编程设定多种泵工作方式,最多可拖4台泵循环启动;2.可选配的RS485远程通讯接口,标准组态软件支持远程通讯;3.参数调整和设定具有密码锁定及保护功能;4.采用人工智能模糊控制算法,设定参数少,控制精度高,内带看门狗电路,采用数字滤波及多项抗干扰措施,防止软件跑飞;5.可接无源远传压力表、有源电压及电流型压力变送器;6. D/A输出控制频率电压为DC 0-10V, 也可设定为DC 0-5V;7.具有压力传感器零点和满度补偿功能;8.具有定时自动倒泵功能;9.具有第二压力(消防压力)设定和控制功能;10.具有缺水自动检测保护功能和外部输入停机保护功能;11.系统补水控制时,具有超压自动泄水控制功能;12.具有供水附属小泵控制功能,可设定小泵变频或工频模式;13.具有可选的定时自动开、关机控制功能;14.具有小流量水泵睡眠控制功能;15.具有手操器功能,可手动调节输出电压来控制变频器的频率;16.可代替电接点压力表进行上、下限压力控制;17.具有分时分压供水控制功能,最多有六段时间控制;三、安装尺寸和接线端子说明1.控制器外形尺寸: 160mm×80mm×90mm2.控制柜面板开口尺寸151mm×75mm,面板卡入式安装。
研华模块Adam4000_产品规格说明书

Adam4000系列产品规格说明书(本说明书说明驱动产品的功能,性能指标,是测试工程师、文档工程师和开发人员交流的重要依据,是编写测试用例和帮助文档的重要依据。
下边几项是必须填写的,如果还有需要说明的部分,需要编写更多的内容)[项目经理填写]项目背景:一、产品功能简介Adam4011是热电偶输入模块,包括一路模拟量输入、2路数字量输出、一路数字量输入。
Adam4011D是带液晶显示的输入模块,包括一路模拟量输入、2路数字量输出、一路数字量输入。
Adam4012是模拟输入模块,一路模拟量输入、2路数字量输出、一路数字量输入。
Adam4013是模拟量输入模块,一路模拟量输入。
Adam4014D是带液晶显示的模拟输入模块,有一路模拟输入,2路数字量输出,一路数字量输入。
Adam4015是热电阻输入模块,六路模拟量输入Adam4016是应变计输入模块,一路模拟量输入、4路数字量输出。
Adam4017是16位8通道模拟量输入模块,6路双端,2路单端模拟量输入。
Adam4017+是16位8通道双端模拟量输入模块。
Adam4018是16位8通道模拟输入数据记录模块,6路双端模拟量输入,2路单端模拟量输入。
Adam4018+是16位8通道热电偶输入模块。
Adam4018M是16位8通道模拟输入数据记录模块,6路双端模拟量输入,2路单端模拟量输入。
Adam4019是模拟量输入模块,8路模拟量输入。
Adam4021是模拟量输出模块,一路模拟量输出。
Adam4022T可以通过软件来进行PID参数设定,还可以通过软件将其设置为简单的模拟量I/O模块。
Adam4024是模拟量输出模块,4路模拟量输出,4路数字量输入。
Adam4050是数字I/O模块,7通道数字量输入,8通道数字量输出。
Adam4051是16路数字量输入模块。
Adam4052是8路带隔离数字量输入模块,6路双端数字量输入,2路单端数字量输入。
Adam4053是16路数字量输入模块Adam4055是数字I/O模块,8通道隔离数字量输入,8通道隔离数字量输出。
CR-4000 4通道控制器 安装和操作指南

4通道控制器安装和操作指南加拿大BW中国技术服务中心Tel*************Fax*************Email:***************.cn目录标题页安全信息-首先阅读 (ii)联系BW科技有限公司 (ii)产品简介 (2)仪器安装 (3)固定(图2) (4)4-20 mA变送器接线 (参看图3和图4) (7)接通电源 (8)继电器的连接 (9)备用电池的安装 (10)电池的连接 (10)安装 (11)A. 选择通道 (12)B. 开机 (13)C. LCD显示校准 (13)D. 报警设置 (14)E. 报警继电器的设置(可选) (15)操作说明 (16)仪器的维护 (17)备用电池的使用(现场安装) (18)注意: (19)技术规格 (20)产品保证服务 (21)图解目录图解标题页图1:显示示意图 (1)图2:仪器外壳外观示意图 (3)图3:系统电路图 (5)图4:主板电路图 (6)图5:4-20mA接线指导 (7)图6:选择电源接线指导 (8)图7:备用电池的连接 (10)图8:备用电池组装示意图 (18)列表目录列表标题页表1:量程范围选择参数表 (12)表2:LCD屏幕校准- 点触开关的位置 (13)表3:LCD显示符号/信息 (16)表4:故障排查指导 (17)表5:更换用零件 (18)安全信息-首先阅读a 重要提示注意 基于安全考虑,本仪器只能由合格人员操作和维护,操作和维修前必须认真阅读和理解用户手册。
⇒ 警告:更换零部件有可能破坏仪器的本质安全性。
⇒ 如由非BW 技术人员对仪器进行拆卸,调整或维修,保证服务将会失效。
⇒ 如控制器或系统部件有损坏,应立即停止使用。
应按常规操作检查仪器,并保留日志。
如果仪器受损,或遗失部件,应立即联系BW Technologies 。
⇒ 除非在操作手册中有相应明文规定,否则禁止试图拆卸,调整或维修本控制器,或者更换零配件。
弹性安全系统 4000系列防火警 控制板 产品说明书

EFFICIENT, SCALABLE AND CONNECTED. Honeywell XLS4000 Series Fire Alarm Control PanelIntroducing the Honeywell XLS4000 series: a fullynetworkable life safety system designed to scale up with anyinstallation, minimize the needs for equipment changes, andprovide secure connectivity with industry compliance. Thisscalable panel solution is now easier to install, simpler to use,and integrates the latest SW advances for testing, inspectingand maintaining life safety.Honeywell XLS4000 enables modular expandability to be ready at any time– a system that grows with a building. The Honeywell XLS4000 series reduces the amount of equipment needed, which in turn impacts the amount of maintenance, replacements parts, and overall inventory management required.The Network Control Display (NCD)on the Honeywell XLS4000 series hasa modern and intuitive touchscreen userinterface designed to minimize humanerror and meet today’s building aestheticneeds.The new ACM-30 annunciators aremore versatile than ever and can beprogrammed as LED indicators, actionbuttons OR a combination of both– all within the same product.HW-SS-XLS4000 I 08/22© 2022 Honeywell International Inc.Honeywell Building Technologies715 Peachtree St. NE Atlanta, GA 30308 Informationremotely :and troubleshoot problems ahead reports instantly once the The Honeywell XLS4000 Series – an all-in-one solution that delivers reliable protection, scalibility, efficient monitoring and timely reporting with unmatched flexibility.Honeywell XLS4000: Efficient. Scalable. Connected.Visit to learn more.self-testing that automate the test。
FS4000使用说明书

FS4000消防控制室图形显示装置前 言FS4000软件是安装于FS4000消防控制室图形显示装置的计算机图形软件(以下简称“FS4000软件”)是配合赋安公司FS5050型火灾报警控制器运行的计算机图形界面监控软件。
FS4000软件的目的是让用户在计算机上直观地看到发生事件(火警、联动、故障、反馈、屏蔽)的设备的类型及所在位置,并能够方便快速地作出相应处理。
权限管理使得不同的操作人员只能完成其职责范围内的事。
FS4000软件能详细地记录发生的事件,包括操作人员信息和报警事件信息,为事后查询提供有力证据。
FS4000软件满足国家标准GB16806-2006《消防联动控制系统》的相关要求。
本说明书的内容满足GB9969.1-1998《工业产品使用说明书 总则》的相关要求。
本说明书应妥善保管,并由专人负责,以备日后查用。
说明书版本:V2.02009.12目录第一篇 FS4000消防控制室图形显示装置1.1 组成 (5)1.2 结构尺寸 (6)1.3 内部结构及接线方法 (6)第二篇 FS4000消防控制室图形显示系统第一章 概述 (7)1.1 软件运行环境 (7)1.2 软件安装 (7)1.3 软件卸载 (8)1.4 软件启动与界面 (9)1.5 软件退出 (9)第二章 操作权限 (10)2.1 权限 (10)2.2 进入系统 (11)2.3操作员管理 (11)第三章 系统设置 (14)3.1 通讯及机型设置 (14)3.2 用户信息设置 (15)3.3日期、时间设置 (15)3.4 报警控制设置 (16)3.5 窗口显示设置 (17)3.6 监控中心 (17)3.7 其他设置 (18)第四章 事件 (19)4.1 什么是事件 (19)4.2 记录事件 (19)4.3 查看报警事件 (19)4.4 报警事件查看窗口 (20)4.5 报警声响 (20)4.6 火警首警 (20)4.7历史事件记录的查阅、删除、打印 (20)第五章 图层与设备 (22)5.1 为什么使用平面图和设备图标 (22)5.2 平面图 (22)5.3 设备图标 (23)5.3.1 添加新设备图标 (23)5.3.2 设备图标的属性和编辑 (24)5.3.3 移动设备图标和改变图标大小 (25)5.3.4 统一图标的尺寸 (25)5.3.5 图标的标题显示 (26)5.3.6 删除设备图标 (26)5.4 图层与设备信息栏 (26)第六章 操作 (27)6.1 打开平面图 (27)6.2 平面图操作 (27)6.3 查看报警事件 (27)6.4 火警首警及火警总数 (27)6.5 模拟事件 (27)6.6 消音 (28)6.7 系统复位 (28)1.1组成FS4000计算机图形显示装置主要由琴台式机箱、计算机及相关配套接口模块、FS4000软件组成(见表1-1)。
ADAM-4060 4068快速入门手册

ADAM-4060/4068快速入门手册一、 ADAM-4060/ADAM-4068概述ADAM-4060继电器输出模块提供四个继电器通道,两个A 型,两个C 型。
接触功率:AC :125V@0.6A;250V@0.3A DC: 30V@2A;110V@0.6A ADAM-4068继电器输出模块提供八个继电器通道,四个A 型,四个C 型。
接触功率:AC :125V@0.6A;250V@0.3A DC: 30V@2A;110V@0.6A ADAM-4068支持Modbus 协议。
ADAM-4068ADAM-4068继电器输出模块二、ADAM-4060/4068硬件连接1.ADAM-4068模块简单控制接线图ADAM-4060 A型继电器的输出ADAM-4060 C型继电器的输出ADAM-4068 A型继电器的输出ADAM-4068 C型继电器的输出三、ADAM-4000 Utility的使用1. ADAM-4000的应用软件-ADAM Utility 的安装把ADAM4000 随机附带光盘放入计算机的光驱中,出现如下画面选择ADAM4000 Utility 安装选项,出现如下安装界面:根据后续的软件安装提示,完成ADAM4000 Utility 的安装。
PC机上就会出现ADAM4000 Utility的软件如下图2 .ADAM Utility的快速使用1. 选中COM1或COM2,点击工具栏快捷键search:网络扫描如下图所示3. 点击模块,进入测试/配置界面:4. 终端(Terminal)在TOOL菜单,选择Terminal功能,弹出一个【Terminal】对话框,可以测试模块的命令。
本选择允许在RS-485总线上直接发送和接受命令。
有两个可选项,Single Command,Command File。
Single Command允许将命令键入,一次一个,并击ENTER键,命令的回答显示在下方空白区内。
adam4060快速入门手册

ADAM-4060 快速入门手册第一章ADAM-4060的安装1.1 概述ADAM-4000系列模块是一种模块内置式微控制器,传感器到计算机接口的智能设备。
这些模块通过发出ASCII码格式的简单命令集并以RS-485通讯协议发送予以遥控。
本模块提供信号调理、隔离、调整量程、A/D转换、数据比较及数据通讯功能。
! 软件配置和校准ADAM-4000模块无需设置电位器和开关。
仅从主机发出命令就能改变模拟量输入模块各种量程的电压输入。
全部模块的配置参数,包括I/O地址、速度、奇偶位、上限报警、下限报警、校准参数等均可以远程设定。
借助研华公司提供的菜单式软件、安装命令或校准命令实现远程设定。
配置参数和校准参数存入EEPROM存储器,在掉电情况下也能保存这些参数。
! 电源要求ADAM模块以非稳压的工业标准十24V直流电源供电,但也接受变化范围在十10V至十30V之间的任何直流电源。
电源纹波峰峰值必须在5V以内,瞬态纹波应保持在十10V至十30V之间。
! 连接和编程ADAM模块能连接到所有计算机和终端上并与之通讯。
它们采用RS-485传输标准,并用ASCII 格式通讯。
每一个型号模块的命令集由近10条指令组成。
模块和模块之间的通讯都以ASCII码实现,这就意味着ADAM模块能以任何高级语言编程。
! RS-485网络RS-485网络提供较低噪声传感器读入。
由于模块很靠近信号源,通过采用 ADAM RS-485中继器,可以将多达256个ADAM模块连接到RS-485网络上,将最大通讯距离延伸到1200m。
主机通过 ADAM RS-232/RS-485转换器用一个 COM通讯口连到 RS-485网络。
为了提高网络的吞吐能力,ADAM RS-485中继器采用逻辑 RTS信号管理中继器的方向。
RS-485网络仅需两根线:DATA十和 DATA一。
通过低廉的屏蔽双绞线连接。
! 面板、DIN导轨安装ADAM-4017可安装在任意面板上,或者安装在本公司提供的托架或DIN导轨上,或者分层重叠在一起安装。
DE-4000系列可配置安全停止和控制系统脚本参考手册说明书

Scripting Reference ManualDE-4000 Series Configurable Safety Shutdown and Control System Form DE-4000 SRM 06-20DE-4000 SCRIPTING REFERENCE MANUALOne overarching capability that allows a bridge to gap the standard needs of everyday systems and the customer needs of innovation is scripting. A scripting language, cleverly named Lua, is embedded into the DE-4000 system. It operates as a script mainly meaning that it does not need additional tools to convert the “code” into machine language. It also is looked at and corrected for errors every time the script runs. Therefore it is an “interpreted” language and runs all of the time when you ask it. Lua comes with a background of being robust, fast, and geared towards embedded applications, with a proven track record in the gaming industry. For the DE-4000 system it is small and fits in the memory we have available, holds a lot of power, and keeps it simple for writing in the language.All information regarding the Lua scripting language is located at https:// Using the Lua engine as an embedded tool allows for taking advantage of a full architecture and standard at your fingertips. Within the language there are all ofthe normal attributes to programming such as functions, variables, statements, expressions etc. All of this reference material can be found at https:/// manual/5.3/For getting started and using a guided reference, there are several editions of “Programming in Lua” available. Most recent editions are a paid for product that come in paper back or ebook form. While testing out Lua and becoming familiar, a free first edition is available and covers a lot of learning needs to get comfortable with the language. It can be located at https:///pil/contents.html.A major advantage to using Lua is its inherent ability to allow custom functions. While all normal functions and calls are published, there is the ability to add new functions in the DE-4000 firmware. Once new functions are defined and have calls to their internal properties, they then can be published for the user. This includes functions such as our flexible Modbus table and talking with various terminal boards linked in the system. Below is the start to the list of Altronic based functions. As functionality and features come to life through new ideas, this document will continually get updated with the latest scripts that we make available.GETTING STARTED WITH DE-4000 SCRIPTSBasic Scripting on DE-40001. Begin on Dashboard on DE-4000 system environment2. Choose “Global” from menu on left side of screen3. In the Sub-Menu on the Left side select “Scripts”4. Select one of the page icons under one of the 4 script options to open editor5. Scripting can be entered into the editor.Scripting Windows and examples• Master ScriptThe Master Script section is the Primary scripting environment.Primary scripting functions can be written in this section.Exampl e:local suction = get_channel_val(1,1)local discharge1 = get_channel_val(1,3)diff = discharge1 - suctionset_sVirt(“Difference”,diff)The first line gets the channel value from Terminal board 1 Input 1 and stores it in local variable named suction.The second line gets the channel value from Terminal board 1 Input 3 and stores it in local variable named discharge1.The third line takes the discharge1 pressure and subtracts the suction pressure and stores it in the global variable named diff (NOTE: Any value that you want to access from another scripting section must be stored in a global variable. This is used most in calling values into Modbus registers as explained below).The fourth line copies the value from diff and stores it into the Virtual statuschannel named “Difference” This channel can be displayed on the Dashboard.• Control ScriptThe Control Script section is used to override the default controlstrategy found on the Global/Control page. A copy of the defaultcontrol script (found in attached appendix) can be copied into thissection and then modified to change the control functionality as wellas add additional control loops beyond the default 2.• Modbus ScriptThe Modbus Script section is used to move data into and out ofModbus registersdefaultModbus()set_modbus(300,diff)The first line pulls in the factory set Modbus mappingThe second line moves the value from the global variable named diff into the 40300 Modbus RegisterCUSTOM FUNCTIONS FOR SCRIPTINGcreate_param(“index”,default,”category”,”description”)Create a user configurable parameterParameter is stored as “index”Default value (if not changed by user) is defaultParameters will be grouped on the global/params page by categoryDescription is text to describe the parameter to the usere:Examplcreate_param(“numengcyl”,8,”engine params”,”num. of engine cylinders”) Related function(s): get_param()get_channel_label(terminal,channel)Return the label for the input channel defined by terminal, channele:Exampl-- Read channel label for terminal 1, channel 7local chanLabel = get_channel_label(1,7)get_channel_long_label(terminal,channel)Return the channel label, but leave off the short label if definedNote: A channel can be assigned a short label in the DE-4000 channel configuration page. The short label is defined at the end of the channel label and is enclosed in parentheses.For a suction pressure channel you would define the channel label as: Suction Pressure (SP)In this case the channel short label is SPThis function will return the long label defined above as Suction PressureExample:-- Read channel long label for terminal 1, channel 7local shortLabel = get_channel_short_label(1,7)-- Returns “Suction Pressure”get_channel_short_label(terminal,channel)Return the short label for a channel if defined, otherwise return the channel hashNote: A channel can be assigned a short label in the DE-4000 channel configuration page.The short label is defined at the end of the channel label and is enclosed in parentheses.For a suction pressure channel you would define the channel label as: Suction Pressure (SP)In this case the channel short label is SPIf the channel short label is not defined the channel hash will be returned. For example, the channel hashfor Terminal 1, Input channel 12 is T1:IN12e:Exampl-- Read channel short label for terminal 1, channel 7local shortLabel = get_channel_short_label(1,7)-- Returns “SP”get_channel_val(terminal,channel)Returns current value of analog input channel on terminal module terminalReturn value type is numericExample: (reads value of Suction Pressure from terminal module #1, IN5)local sp = get_channel_val(1,5)get_gbl(“index”,default)Return global config setting stored under index or return default if not definedNote: get_gbl is used to retrieve global CONFIGURATION settings that are typically set when the system is configured and do not change as the system is running.If you want to set and retrieve global STATUS variables use the get_sGbl() and set_sGbl() functions. If you want to create and read virtual channels use the set_sVirt() and get_sVirt() functions.Example: (get the number of terminal boards installed in the system)local nt = get_gbl(“NumTerm”,1)get_modbus(register)Return the value stored in a 40000 block Modbus registerNote: This function returns values from the 40000 block of registers. In other words, passing the value of 250 into this function will return the value stored at Modbus register 40250Example:local regVal = get_modbus(250)set_sVirt(“Reg40250”,regVal) --create virtual channel with--value from register 40250Related function(s): set_modbus()get_param(“index”)Return either the default value or the user configured value of the parameter indexExample: (get the configured parameter for number of engine cylinders)get_param(“NumEngCyl”)Related function(s): create_param()get_rpm(channel)Reads the RPM input channel in units of revolutions per minuteNote: valid channel numbers are 1 – 10 (2 channels each per 5 possible Terminal Modules)Each Terminal Module has 2 RPM inputs (RPM1 and RPM2)Terminal Module #1 RPM channels are 1,2Terminal Module #2 RPM channels are 3,4Terminal Module #3 RPM channels are 5,6Terminal Module #4 RPM channels are 7,8Terminal Module #5 RPM channels are 9,10Example: (read RPM1 channel on Terminal Module #1and RPM2 channel on Terminal Module #3)local engineRPM = get_rpm(1)local turbuRPM = get_rpm(6)get_sGbl(“index”,{default})If “index” is defined in the global status table, returns the value associated with “index”If “index” is not defined and optional {default} is provided then returns {default}Note: It is recommended to always provide a default value when using this functionExample: (get the previously stored value “calculatedPressure”, return 0 if not found)local cp = get_sGbl(“calculatedPressure”,0)Related function(s): set_sGbl()get_state()Return the current engine state (possible values are currently 0 - 10)Example:local engineState = get_state()if engineState > 7 thenset_timer(“WarmupTimer”,1000)endget_sVirt(“index”,default)Returns the value of virtual channel index or returns default if the virtual channel does not existExample: (get the value of the virtual channel ElapsedTime and set value of status global “timeExceeded” if ElapsedTime is greater then status global “timeLimit”)local tl = get_sGbl(“timeLimit”)local et = get_sVirt(“ElapsedTime”,0)if et > tl thenset_sGbl(“timeExceeded”,true)elseset_sGbl(“timeExceeded”,false)endRelated function(s): set_sVirt()get_time()Return the Unix “epoch” time (defined as number of seconds elapsed since Jan 1, 1970)Note: you can measure elapsed time by storing a get_time() value at one event and later reading the current get_time() and then subtract the first time from the second timeExample: (store current time if first time through, otherwise calculate elapsed time)local startTime = get_sGbl(“startTime”,0)if startTime ==0thenlocal currentTime = get_time()startTime = currentTimeset_sGbl(“startTime”,currentTime)endlocal et = get_time()- startTimeset_sVirt(“ElapsedTime”,et)get_timer(“index”)Returns 1 or 2 valuesFirst return value (boolean) is true if timer is active(counting down) or false if timer is expired or false if time has not been set Second return value is number of seconds remaining or -1 if timer is not active or -1 if timer has not been setExample: (if timer is expired, then set global status “timedOut” to true)if not get_timer(“myTimer”)thenset_sGbl(“timedOut”,true)elseset_sGbl(“timedOut”,false)ende: (set virtual channel to show number of remaining seconds)Exampllocal active,remaining = get_timer(“myTimer”)if not active thenset_sVirt(“timeRemaining”,”Expired”)elseset_sGbl(“timeRemaining”,remaining)endRelated function(s): set_timer()RandomVariable(length)Create a string composed of random alpha/numeric text. The length of the returned string is passed in as length e:Exampl-- get a random string 10 characters longlocal randomText = RandomVariable(10)-- returns a random string such as “AIqbFfzQ68”set_modbus(register,value)Set a value into a 40000 block Modbus registerNote: This function sets values into the 40000 block of registers. In other words, passing the register parameter of 250 into this function will set the value stored at Modbus register 40250Example:-- Read channel value at Terminal 1, channel 5 and write-- to Modbus register 40250local chanVal = get_channel_val(1,5)set_modbus(250,chanVal)Related function(s): get_modbus()set_sGbl(“index”,value)Store value in the global status table under “index”Value can be a number or a string but if storing a boolean, use tostring()Example: (store boolean value “minPressureExceeded”)local mpe =falselocal sp = get_channel_val(1,5)if sp >15thenmpe =trueendset_sGbl(“minPressureExceeded”,tostring(mpe))Related function(s): get_sGbl()set_sVirt(“index”,value)Sets a virtual status channel with channel name indexNote: once you create a virtual channel, you can add that channel to the dashboard using the channel name index Example: (calculate differential between suction and discharge pressure and assign to virtual channel)local sp = get_channel_val(1,5) --suction pressurelocal dp = get_channel_val(1,6)--discharge pressurelocal diffPress = dp - spset_sVirt(“SuctDischDiff”,diffPress)Related function(s): get_sVirt()set_timer(“index”,secs)Activate timer “index” and set countdown time to secsExample: (create timer “myTimer” and start countdown time at 300 seconds)set_timer(“myTimer”,300)Related function(s): get_timer()APPENDIX:DEFAULT CONTROL LOOP SCRIPT:local rampRate1=get_gbl(“rampRate1”,0.8)local rampRate2=get_gbl(“rampRate2”,0.8)local dischTerm=tonumber_def(get_gbl(“spDischTerm”,0),0)local dischChan=tonumber_def(get_gbl(“spDischChan”,0),0)local suctTerm=tonumber_def(get_gbl(“spSuctTerm”,0),0)local suctChan=tonumber_def(get_gbl(“spSuctChan”,0),0)local suctMin=tonumber_def(get_gbl(“suctMin”,0),0)local recycleMin=tonumber_def(get_gbl(“recycleMin”,0),0)local recycleMax=tonumber_def(get_gbl(“recycleMax”,0),0)local suctSp=tonumber_def(get_gbl(“suctSp”,0),0)local dischMax=tonumber_def(get_gbl(“dischMax”,0),0)local dischSp=tonumber_def(get_gbl(“dischSp”,0),0)local outputTerm=tonumber_def(get_gbl(“outputTerm”,0),0)local outputChan = tonumber_def(get_gbl(“outputChan”,0),0)local recycleTerm = tonumber_def(get_gbl(“outputTerm2”,0),0)local recycleChan=tonumber_def(get_gbl(“outputChan2”,0),0)local speedRevAct = tonumber_def(get_gbl(“speedRevAct”,0),0)local recycleRevAct = tonumber_def(get_gbl(“recycleRevAct”,0),0) local outputLow = tonumber_def(get_gbl(“outputLow”,0),0)local outputLow2 = tonumber_def(get_gbl(“outputLow2”,0),0)local outputHigh = tonumber_def(get_gbl(“outputHigh”,0),0)local outputHigh2 = tonumber_def(get_gbl(“outputHigh2”,0),0)local spSuctType = get_gbl(“spSuctType”,”linear”)local spDischType = get_gbl(“spDischType”,”linear”)local suctPIDPFactor = tonumber_def(get_gbl(“suctPIDPFactor”,0),0) local suctPIDIFactor = tonumber_def(get_gbl(“suctPIDIFactor”,0),0) local suctPIDDFactor = tonumber_def(get_gbl(“suctPIDDFactor”,0),0) local dischPIDPFactor = tonumber_def(get_gbl(“dischPIDPFactor”,0),0) local dischPIDIFactor=tonumber_def(get_gbl(“dischPIDIFactor”,0),0) local dischPIDDFactor=tonumber_def(get_gbl(“dischPIDDFactor”,0),0) local recycleCtrl=falselocal recycleSuctionRev=falselocal recycleDischargeRev=falseif recycleChan>0 and recycleTerm>0thenrecycleCtrl=trueend--if recycleCtrl and spSuctType == “linear” and outputLow2 > suctSp then -- recycleSuctionRev = true--end--if recycleCtrl and spDischType == “linear” and recycleMax < dischSp then -- recycleDischargeRev = true--end--print(“disch: “..tostring(disch)..” suct:”..tostring(suct))--local suct = 500local dischPct=100local suctPct=100local dischOutput=0local suctOutput = 0local rSuctOutput = 0local rDischOutput = 0local minLoad = 0local maxLoad = 100local minRecycle = 0local maxRecycle = 100local speedTarget=get_sGbl(“speedTarget”,0)local recycleTarget=get_sGbl(“recycleTarget”,0)function map_range(rangeLow,rangeHigh,input)if input<=rangeLow and input<=rangeHigh thenreturn0endif input>=rangeLow and input>=rangeHigh thenreturn100endlocal rangeDiff=math.abs(rangeLow-rangeHigh)local min = math.min(rangeLow,rangeHigh)local retval=math.abs(input-min) /rangeDiff*100 if retval>100then retval=100endif retval<0then retval=0endreturn retvalendlocal suct= falselocal suctVal=0if tonumber_def(get_gbl(“spSuctEn”,0),0)==1thenif suctTerm>0and suctChan>0thensuctVal=get_channel_val(suctTerm,suctChan)suct=trueendendif suct thenif spSuctType ==“linear”thenlocal suctDiff = suctSp - suctMinif suctDiff == 0 then suctDiff = 1 endif suctVal < suctSp thenlocal suctErr = suctSp - suctValsuctPct = suctErr / suctDiffif suctPct > 1 then suctPct = 1 endif suctPct < 0 then suctPct = 0 endsuctOutput =(1 - suctPct)* 100elsesuctOutput = 100endelseset_gbl(“PIDsuctEnable”,1)set_gbl(“PIDsuctPFactor”,suctPIDPFactor)set_gbl(“PIDsuctIFactor”,suctPIDIFactor)set_gbl(“PIDsuctDFactor”,suctPIDDFactor)set_gbl(“PIDsuctSp”,suctSp)set_gbl(“PIDsuctDeadband”,0.2)local suctPidOutput = doPid(“suct”,suctVal)suctOutput = suctPidOutputendelsesuctOutput = 100endlocal disch =falselocal dischVal = 0if tonumber_def(get_gbl(“spDischEn”,0),0) == 1 thenif dischTerm > 0 and dischChan > 0 thendischVal = get_channel_val(dischTerm,dischChan) disch =trueendendif disch thenif spDischType ==“linear”thenlocal dischDiff = dischMax - dischSpif dischDiff == 0 then dischDiff = 1 endif dischVal > dischSp thenlocal dischErr = dischVal - dischSpdischPct = dischErr / dischDiffif dischPct > 1 then dischPct = 1 endif dischPct < 0 then dischPct = 0 enddischOutput =(1 - dischPct)* 100elsedischOutput = 100endelseset_gbl(“PIDdischEnable”,1)set_gbl(“PIDdischPFactor”,dischPIDPFactor)set_gbl(“PIDdischIFactor”,dischPIDIFactor)set_gbl(“PIDdischDFactor”,dischPIDDFactor)set_gbl(“PIDdischSp”,dischSp)set_gbl(“PIDdischRevAct”,1)set_gbl(“PIDdischDeadband”,0.2)local dischPidOutput = doPid(“disch”,dischVal)dischOutput = dischPidOutputendelsedischOutput = 100end--print(“suctOutput dischOutput: “..math.floor(suctOutput)..” “..math. floor(dischOutput))local minOutput = 100local winning = 0if suctOutput < minOutput thenminOutput = suctOutputwinning = 1endif dischOutput < minOutput thenminOutput = dischOutputwinning = 2endif suctOutput == dischOutput thenwinning = 0endif winning == 0 thenset_gbl(“PIDsuctMax”,100)set_gbl(“PIDdischMax”,100)endif winning == 1 thenset_gbl(“PIDdischMax”,math.min(suctOutput + 2,100))set_gbl(“integraldisch”,0)set_gbl(“lastErrdisch”,0)set_gbl(“outputSumdisch”,0)set_gbl(“PIDsuctMax”,100)endif winning == 2 thenset_gbl(“PIDsuctMax”,math.min(dischOutput + 2,100))set_gbl(“integralsuct”,0)set_gbl(“lastErrsuct”,0)set_gbl(“outputSumsuct”,0)set_gbl(“PIDdischMax”,100)endlocal recycleMinOutput = minOutputlocal manOutput = 0--******************************************************************** local manMode = 0local manTerm = tonumber_def(get_gbl(“manTerm”,0),0)local manChan = tonumber_def(get_gbl(“manChan”,0),0)if manTerm > 0 and manChan > 0 thenlocal manInput = get_channel_val(manTerm,manChan)if manInput > 0.5 thenmanMode = 0set_sVirt(“SpeedControl”,”Auto”)elsemanMode = 1set_sVirt(“SpeedControl”,”Manual”)endelseif get_sVirt(“SpeedControl”,”Auto”) == “Auto”thenmanMode = 0elsemanMode = 1endend--[[local idleSpeed = get_gbl(“idleSpeed”,0)local lowSpeed = get_gbl(“lowSpeed”,0)local highSpeed = get_gbl(“highSpeed”,0)local speedPct = 0if st> highSpeed then st= highSpeed endif st< lowSpeed then st = lowSpeed endif get_state() ~= 8 then--st= idleSpeedendset_sVirt(“SpeedTarget”,st)speedPct =(st - lowSpeed) /(highSpeed - lowSpeed) * 100if speedPct < 0 then speedPct = 0 endif speedPct > 100 then speedPct = 100 endst = speedPctif idleSpeed < lowSpeed thenlocal speedRpm = speedPct / 100 * (highSpeed - lowSpeed) + lowSpeed st = (speedRpm - idleSpeed) / (highSpeed - idleSpeed) * 100 --st =(st - idleSpeed) / (highSpeed - idleSpeed) * 100end]]----if manMode == 1 and get_state() == 8 thenlocal manSpeed = get_sVirt(“ManualSpeed”,0)local idleSpeed = get_gbl(“idleSpeed”,0)local lowSpeed = get_gbl(“lowSpeed”,0)local highSpeed = get_gbl(“highSpeed”,0)local maxSpeed = get_gbl(“maxSpeed”,0)local diff = highSpeed - lowSpeedif diff < 0 then diff = 0 endlocal maxDiff = maxSpeed - idleSpeedif maxDiff < 0 then maxDiff = 0 endif get_sVirt(“speedBump”,0) ~= 0 thenlocal si= get_gbl(“SpeedIncrement”,0)local sip = get_param(“SpeedIncrement”,0)if sip ~= 0 then si = sip endmanSpeed = manSpeed +(si * get_sVirt(“speedBump”,0)) set_sVirt(“speedBump”,0)endif get_sVirt(“AutoManBump”,0) > 0 thenset_sVirt(“SpeedControl”,”Auto”)set_sVirt(“AutoManBump”,0)endif get_sVirt(“AutoManBump”,0) < 0 thenset_sVirt(“SpeedControl”,”Manual”)set_sVirt(“AutoManBump”,0)endif manMode == 1 thenlocal manSpeedTerm = tonumber_def(get_gbl(“manSpeedTerm”,0),0)local manSpeedChan = tonumber_def(get_gbl(“manSpeedChan”,0),0)if manSpeedTerm > 0 and manSpeedChan > 0 then--*** USE SPEED PCT TO SET SPEEDlocal speedInput = tonumber(get_channel_val(manSpeedTerm,manSpeedChan)) local speedPct =(speedInput / 5) * 100if speedPct > 100kl then speedPct = 100 endif speedPct < 0 then speedPct = 0 endmanOutput = speedPctmanSpeed =math.floor((speedPct / 100) * diff + lowSpeed + 0.5) else-- Use ManualSpeed to set speedmanOutput = ((manSpeed - lowSpeed) / diff) * 100.0if manOutput < 0 then manOutput = 0 endif manOutput > 100 then manOutput = 100 endendminOutput = manOutputelse--speedTarget =local stRpm =(speedTarget/100) * maxDiff + idleSpeedif stRpm < lowSpeed then stRpm = lowSpeed endif stRpm > highSpeed then stRpm = highSpeed endmanSpeed =math.floor(stRpm)end--speedTarget = get_sGbl(“speedTarget”,0)if manSpeed < lowSpeed thenmanSpeed = lowSpeedendif manSpeed > highSpeed thenmanSpeed = highSpeedendset_sVirt(“ManualSpeed”,manSpeed)--******************************************************************** local output1 = 0local output2 = 0if spSuctType ==“pid”or spDischType ==“pid”then--Map minOutput to output1output1 = map_range(outputLow,outputHigh,minOutput)set_sVirt(“out1”,output1)--Map minOutput to ourput2output2 = map_range(outputLow2,outputHigh2,recycleMinOutput)set_sVirt(“out2”,output2)local hasRPM = idleSpeed > 0 and lowSpeed > 0 and highSpeed > 0 and max-Speed > 0if outputTerm and outputChan thenif hasRPM thenlocal speedRpm = output1 / 100 *(highSpeed - lowSpeed) + lowSpeed--set_ao_val(outputTerm,outputChan,(speedRpm - idleSpeed) / (maxSpeed - idleSpeed) * 100)speedTarget = (speedRpm - idleSpeed) / (maxSpeed - idleSpeed) * 100 else--set_ao_val(outputTerm,outputChan,output1)speedTarget = output1endendif recycleTerm and recycleChan thenset_ao_val(recycleTerm,recycleChan,output2)endif get_state()== 9 thenspeedTarget = get_sGbl(“speedTarget”,0)if speedTarget > 0 then speedTarget = speedTarget - rampRate1 end if speedTarget < 0 then speedTarget = 0 endendif get_state()< 8 then speedTarget = 0 endset_sGbl(“speedTarget”,speedTarget)--set_sGbl(“a”..outputChan,speedTarget)set_ao_val(outputTerm,outputChan,speedTarget)--set_ao_val(outputChan,speedTarget)--print(suctOutput..” “..dischOutput..” “..speedTarget)set_sVirt(“spTarget”,speedTarget)--set_speed_val(1,speedTarget)if hasRPM thenlocal sRpm =(speedTarget/100)* maxDiff + idleSpeedset_sVirt(“Speed Target”,math.floor(sRpm + 0.5))endelse-- Remember that minOutput is 0 - 100 pct of lowSpeed <-> highSpeed -- We need to convert this to 0 - 100 pct of idleSpeed <-> maxSpeed local suctPct = map_range(outputLow,outputHigh,minOutput)local speedRpm = suctPct / 100 *(highSpeed - lowSpeed) + lowSpeed minOutput =(speedRpm - idleSpeed) /(maxSpeed - idleSpeed) * 100if minOutput <= speedTarget thenspeedTarget = speedTarget - rampRate1if speedTarget < minOutput then speedTarget = minOutput endelsespeedTarget = speedTarget + rampRate1if speedTarget > minOutput then speedTarget = minOutput endif speedTarget > maxLoad then speedTarget = maxLoad end endif speedTarget > maxLoad then speedTarget = maxLoad endif speedTarget < minLoad then speedTarget = minLoad endif recycleCtrl thenlocal recyclePct = map_range(outputLow2,outputHigh2,recycleMinOutput) --if recycleRevAct == 1 then recyclePct = 100 - recyclePct endif recyclePct <= recycleTarget thenrecycleTarget = recycleTarget - rampRate2if recycleTarget < recyclePct then recycleTarget = recyclePct endelserecycleTarget = recycleTarget + rampRate2if recycleTarget > recyclePct then recycleTarget = recyclePct endendif recycleTarget > maxRecycle then recycleTarget = maxRecycle endif recycleTarget < minRecycle then recycleTarget = minRecycle endlocal recycleOutput = recycleTargetif get_state() < 8 thenrecycleTarget = 0endif recycleRevAct == 1 thenrecycleOutput = 100 - recycleOutputend--set_sGbl(“a”..recycleChan,recycleOutput)set_ao_val(recycleTerm,recycleChan,recycleOutput)set_sGbl(“recycleTarget”,recycleTarget)set_sVirt(“recycleTarget”,recycleTarget)endif get_state() == 9 thenspeedTarget = get_sGbl(“speedTarget”,0)if speedTarget > 0 then speedTarget = speedTarget - rampRate1 end if speedTarget < 0 then speedTarget = 0 endendif get_state() < 8 then speedTarget = 0 endset_sGbl(“speedTarget”,speedTarget)--set_sGbl(“a”..outputChan,speedTarget)set_ao_val(outputTerm,outputChan,speedTarget)--set_ao_val(outputChan,speedTarget)--print(suctOutput..” “..dischOutput..” “..speedTarget)set_sVirt(“spTarget”,speedTarget)--set_speed_val(1,speedTarget)local sRpm =(speedTarget/100) * maxDiff + idleSpeedset_sVirt(“Speed Target”,math.floor(sRpm + 0.5))end。
SDJB-4000 多功能微机 继电保护测试系统 使用说明书

SDJB-4000多功能微机继电保护测试系统使用说明书中国江苏扬州苏电电气有限公司地址:江苏省宝应城南工业园区邮编:225800电话**************88305855传真**************网址: E-mail:***************咨询热线:400-058-8018目录第一章概述 (1)第二章技术参数 (2)第三章主要特点 (3)第四章面板及背板功能介绍 (4)第五章单机运行软件使用方法 (6)5.1交流试验 (6)5.2直流试验 (9)5.3低周同期 (11)5.4时间测量 (12)5.5功率阻抗 (13)5.6差动试验 (14)5.7叠加谐波 (16)5.8整组试验 (17)5.9阻抗阶梯 (18)5.10零序保护 (19)5.11系统设置 (20)第六章PC软件的使用方法 (21)6.1硬件、软件设置 (21)6.2PC软件使用说明 (21)6.2.1交、直流试验 (22)6.2.2整组试验 (23)6.2.3阶梯阻抗 (27)6.2.4工频变化量距离保护 (28)6.2.5差动试验 (29)6.2.6阻抗相位特性 (30)6.2.7系统振荡 (31)6.2.8两态变换 (32)6.2.9故障再现 (33)6.2.10高低周 (33)6.2.11功率阻抗 (33)6.2.12零序保护 (33)6.2.13叠加谐波 (34)6.2.14六相电流 (34)第七章注意事项及售后服务 (35)7.1注意事项 (35)7.2售后服务 (35)第一章概述微机继电保护测试仪是近十年来发展起来的一个新型智能化测试仪器,以前的继电保护试验工具主要是用调压器和移相器组合而成,体积笨重,精度不高,已不能满足现代微机继电保护的校验工作。
随着科学技术的不断发展,微机继电保护已广泛运用于线路保护,主变差动保护,励磁控制等各个领域,变电站综合自动化已成为主流。
所以,微机继电保护测试仪,必将成为现代继电保护工作人员的必不可少的试验工具。
X400电梯控制系统说明书

状态查询模式(F1~F9) LED1
LED2 上行指示
LED2
LED3 运行指示
LED3
LED4 门区指示
LED4
LED5 门锁指示
LED5
LED6 系统正常
LED6
LED7 通讯LED1~LED8:在信号查询中,分别对应的是8位数据,顺序是从低位到高 位。在电梯运行时,参照正常模式所对应的状态。
输入采集口主要由开关输入量组成,其特性如下:
输入点数
32
输入形式
光电藕合隔离
电压型输入 “1”信号 12~24VDC
“0”信号 0~5VDC
电流型输入 “1”信号 4~7mA
“0”信号 0~2mA
延时
10ms
输入频率
1KHz
允许导线长度
屏蔽800 米
非屏蔽600 米
其具体分布如下图所示:
编号 端子 类型
a.用户 b.电梯控制系统设计者 c.现场配线调试者 d.公司技术支持人员
2
目录 第一章.概述 --------------------------------------------- 4 第二章.外型尺寸及端口描述 ------------------------------- 5 第三章.慢车运行 ----------------------------------------- 23 第四章.快车运行 ----------------------------------------- 27 第五章.功能描述 ----------------------------------------- 30 第六章.参数一览表 --------------------------------------- 34 第七章.故障排除 ----------------------------------------- 53 第八章.部分变频器参数设置 ------------------------------- 57
C4000中文操作手册

5
C4000 型控制器
2 软件概览
2.1 软件定义
该C4000型控制器的软件是用您自己的语言构成的逻辑结构或菜单式设计方便操作,通电系统自 动显示主菜单:
• Display 显示测量结果、数据记录信息和系统自身信息 • Product 测量产品的切换、测量产品的定义 • System 系统的设定、服务以及语言的种类 当初始上电时需要设定如下基本的系统参数: • 选择菜单语言 • 设定时间和日期 • 光源灯泡电压 •等 下步骤即对测量分析的产品进行定义,最多可以定义8种不同产品的,测量的产品可以与实际过 程介质没有关联,但更多的C4000型控制器的设定参数如下: 产品 (最多 8 种)
13
C4000 型控制器
3 基础设定
3.3 日期/时间
用▲ ▼键在主菜单中选择 SYSTEM SETUP条目, ENTER键输入,即进入更改 日期时间的子菜单
子菜单将会出现左图显示, 用▲ ▼箭头选择 DATA/TIME条目,ENTER 键输入即进入下一子菜单
选择日期格式,输入日期。 然后保存或退出。
7.1 显示模式
50
8 数据记录
8.1 数据记录显示
51
9 维护
9.1 系统调零设定
52
9.2 系统诊断
54
9.3 传感器匹配
55
9.4 mA输入校验标定
56
9.5 mA输出校验标定
57
9.6 维护
58
10 显示信息
59
11 故障信息
60
第1部分 – 硬件手册(请参照相关文件)
第3部分 – 防爆产品 (请参照相关文件)
• 语言
德语/英语(法语、西班牙语、意大利语、荷兰语和葡萄牙语即将出炉)
K4000操作手册3.0(中文)

Controle AnalytiqueK4000操作手册杭州川达仪器成套工程有限公司地址:杭州上塘路登云路口紫荆家园31-1-301电话:0086-571-88261597 传真:0086-571-88261508 E-mail:instrumax@ 邮编:310015目 录1 关于本手册 (1)2 忠告 (2)2.1 当心 (2)2.2 谨防触电 (2)2.3 谨防爆炸 (2)2.4 气体的性质 (2)2.5 安全规范 (2)2.6 高压气瓶的搬运和储存 (3)3 承诺和服务 (4)4 技术指标 (5)5 系统描述 (6)5.1 简介 (6)5.2 K4000系统结构概述 (6)5.3 分析部分硬件描述 (11)5.4 电路 (13)6 安装和启动 (16)6.1 供电电源 (16)6.3 载气附件选择 (16)6.4 仪表的安装 (16)6.5 仪表的启动 (17)6.6 减压阀的吹洗 (17)7 控制界面描述 (20)7.1 数字/字符控制 (20)7.2 二元开关控制 (20)7.3 滑动控制 (20)7.4 软键控制 (21)7.5 选择目录控制 (21)7.6 光标控制 (22)7.7 画面 (22)8 菜单介绍 (23)8.1 实时谱图菜单 (24)8.2 分析谱图菜单 (26)8.3 系统诊断菜单 (27)8.4 系统校验菜单 (33)8.5 阀时序菜单 (35)8.7 I/O组态菜单 (39)8.8 系统组态菜单 (39)8.9 密码菜单 (45)9 仪表的维护 (48)9.1 冷阱的更换步骤 (48)9.2 除水器的更换步骤 (48)9.3 自动切换阀的更换步骤 (48)9.4 调整时序的步骤 (48)9.5 电离池的清洗 (49)9.6 定期检查 (49)1 关于本手册该仪表采用“即插即用”的思路设计,使用简单,简单易懂.操作仪表时不需要了解电路,软件和物理细节等方面的情况,这正是我们所希望的.我们知道您希望仪表能尽可能快的投入使用,为此请花时间来认真阅读本手册.每一章都假设您已阅读并理解了前面的章节,且对使用者来说都有重要的内容.仪表非常容易安装和使用并免维修.操作仪表时不需特别的技术知识.我们希望您喜欢K4000系列分析仪.为了不断的进步和提高,我们非常感激您提供有建设性的意见,不管是正面的还是负面的.Controle Analytique Inc.公司相信该手册上所述的信息是准确的.本文经过仔细的校对.若有错误,C.A.公司不对原先版本的持有者声明,公司保留修改和制作下一版本的权利.若读者发现错误,请与 C.A.公司联系,若因为本文或其包含的信息的缘故造成的损坏,公司将负全部责任.没有本公司的同意,任何人不准用任何形式复制或生产用户手册或产品的任何部分.同样,本手册也受法律保护,只能用于怎样操作仪表.除此之外,任何形式的使用须得到本公司的同意.感谢你购买本公司的产品2 忠告2.1 当心不合适的仪表安装,操作和维护会造成仪表的损坏,制造商对此不负责任.2.2 谨防触电只有机箱安全关闭,才能进行操作.修理仪表时有高压电暴露在外,若接触到会使人触电致死或重伤.为了保证仪表的安全和正常运转,交流电源需接有地线.维修前报警继电器和数字输出继电器的供电电源需断开.随意更改和替换部件将会影响产品的安全.只能使用厂家许可的部件.2.3 谨防爆炸仪表中除了可通入用户手册允许的气体外,不能通入其它气体.仪表不能在危险区域使用.氧/氢的安全若仪表用于分析以氧为主成份的样品,所有继电器须能在氧环境下使用;不能使用含油脂或碳氢化合物的密封剂.若仪表用于分析以氢为主成份的样品,必须加吹洗.若仪表用于分析以氢和氧为主成份的样品,不仅需吹洗,使用环境还要有强对流,防止泄漏的爆炸气体聚积.还要装一个样品气切断阀,断电时将样品气切断.并结合当地对此的要求.若仪表用于分析以氢和氧为主成份的样品时,取样预处理系统的设计,集成和使用必须慎重考虑.它们对正确的安装,操作和维护仪表及相关部分必须是可靠的,请参照CGA出版物和当地的要求.2.4 气体的危险氩气和稀有气体(氦,氖,氪,氙)是单原子且化学性质不活泼,无色,无味,无刺激性,无腐蚀.但它们会令人窒息,因此它们放置处一定要通风.氮气是双原子,无色,无刺激性,无腐蚀;也会令人窒息,因此其放置处一定要通风.2.5 安全规范为避免触电,请别移动机箱或打开后盖.用户不要对机器内部进行修理,修理应由专家进行.为避免起火或触电,仪表要防雨和防潮.贴有闪电符号的部件表面有电,不要触摸它,否则有触电危险.1. 第一次使用设备前务必要阅读操作手册中的安全说明和操作说明.手册应放置好,以备将来使用.2. 安全警告:留意设备及手册上的安全警告,按照其要求操作.3. 水和水蒸气:不要在水边使用,如浴室,水盆,下水道,洗衣机,游泳池附近或是潮湿的地下室内.4. 通风:无论设备放在那里,都需通风.不要置于床上,沙发,地毯或类似易堵住散热孔的物体上.要确保通风以免过热.5. 热效应:不要把设备置于热源附近,如电热器、暖气、炉等.6. 电源:电源必须是机器上或操作手册上指定的电源.7. 电源插座:注意电线,防止践踏,任何东西不得靠近电线,尤其要注意插头、插座以及供电处附近区域.8. 清洁:清洁设备应遵从制造商的建议.9. 设备不用:若一段时间不使用该设备,请把插头从插座上拔下.10. 杂物:确保机箱内没有液体或其它杂物.11. 修理:机器的修理必须由专业人员进行,除了操作手册上允许的维护外,不要擅自行动.修理前要咨询专家.2.6 高压气瓶的搬运和储存本仪表通常用于检验高压气瓶中的气体含量,气瓶的错误操作会使人致死或重伤,或造成财产损失.搬运气瓶需要格外的细心.参见高压气瓶搬运和储存的注意事项,下面一些注意事项摘自COMPRESSED GAS ASSOCIATION’S HANDBOOK(压缩气体协会手册).1.绝不能摔气瓶或使它们互相剧烈碰撞.2.气瓶可以存放在户外,但在这种条件下,必须避开恶劣天气.地面不能潮湿,以防生锈.3.气瓶未固定时一定要加安全帽.4.要避免拖、滚、滑气瓶,即使是一小段距离也不行,需要移动时,应使用合适的手推车.5.不要更改阀或气瓶的安全装置.6.不要把满的和空的气瓶放在一起,当空的气瓶接在增压系统中时,将发生严重的倒吸现象.7.气瓶温度不得超过1250F(520C),压缩气瓶的任何部分不得接近火焰.8.不得把气瓶接在电路上.电焊时小心电弧溅向气瓶.3 承诺及服务本公司承诺:从产品安装日起12个月内或发货日起18个月内,仪表在正常使用和和维护条件下出现的质量问题(不包括易耗品),公司免费维修.易耗品、除水器、O型圈等在正常使用条件下出现质量问题,公司免费维修90天,日期从发货日算起.更换、维修的产品和部件以及剩余部分,此承诺同样有效,有效期90天.当出现问题的产品,部件及消耗品可更新,修理或更换时,用户不应提出异议.非产品制造质量引起的直接或间接损失,本公司概不负责.服务条例1. 如果在保修期间产品出现问题,公司将免费进行维修.超过保修期,顾客需支付劳务和材料费用.2. 在保修期内,顾客退回产品进行维修而发现并无质量问题,顾客需支付最低的维修费用.3. 更换部件,原始部件及分析仪的模块号和序列号需提供.若原始部件不送回,C.A公司将不会寄出更换的部件.仪表返修1. 要返修仪表,用户需得到一个返修号.2. 提供订单号或其它可接受的资料.3. 遇到的故障连同客户的姓名、地址、电话及返修号列成清单,一并寄回.4. 寄回仪表要用原始或同样的包装,否则包修自动失效.5. 每一个气体进出口用封头密封,否则包修自动失效.6. 在包装箱外面注明返修号.7. 使用C.A公司同意的运输方式,空运时货物应直达,不接受中途转运.受其它条件的限制,也可申请海运.商标:本公司采用CONTROL ANALYTIK®商标.所有权顾客应认可Controle Analytique公司对Controle Analytique的软件、操作系统、硬件及其它商品的所有权.未经Controle Analytique公司的书面允许不得对产品进行变换、更改、损坏、改造、复制等.4 技术指标参照仪表后盖上的系统结构和操作参数。
4064用户使用说明书

7.面板说明
7.1指示灯说明
主电指示:当交流电源电压>187V时本灯亮。
备电指示:当蓄电池电压>22.5V时本灯亮。
电源故障:当交流电压≤187V或蓄电池电压≤22.5V时本灯亮。
消声指示;当报警器发出声响信号时,按动“消声”键本灯亮。
运行指示;当报警器工作正常,本灯闪亮。
10.2编程软件
在编程软件中用户可输入每只探测器报警时在区域显示器上的显示点及联动的控制模块组、探测器的相与关系、控制模块的延时启动、控制模块多只启动及反馈联动功能、探测器组的相与关系及联动控制模块组,并可为每个设备输入备注信息(如设备名、房间名等)。
10.1.21“编程/输入”: 给相应的设备图形输入地址。分为网络方式和单机方式。网络方式下:CAN总线设备需输入主机号,485总线设备需输入主机号、设备号,探测器和控制模块需输入主机号、设备号、通道号、地址号。单机方式下:CAN总线设备(只有一个4064)和485总线设备需输入设备号,探测器和控制模块需输入设备号、通道号和地址号。输入顺序必须是先输入CAN总线设备地址,再输入485总线设备地址,最后输入探测器和控制模块地址。操作:将鼠标移到设备图形上按左键,然后按提示输入数据。此项功能中还允许用户根据需要选择手动输入方式或自动输入方式。
4.系统功能及特性
①本系统可实现自动报警、自动控制功能。
②本系统可通过继电器输出火警信号。
③本系统可显示现场平面图形。
④本系统可连接各种编码器件、区域显示器及具备CAN接口的报警器。
⑤本系统可实现各种编码器件之间的逻辑控制关系。
⑥本系统采用一体化工业计算机来实现监视管理。
⑦本系统可以采用触摸屏及鼠标器操作,使用非常方便。
TAM4000说明书V10

图 3(a)、图 3(b)为端子定义图,模块电源使用直流+24V 接 于 V+和 V-之间;T+和 T-为 RS485 接口的 A 和 B(研华的 ADAM4520 为 DATA+和 DATA-); iA、iB、iC 为模拟量输入端。
4
图 3(a) TAM4000 端子定义图(除 K 型热电偶外其他类型温控模块)
一﹑产品特点
TAM4000 系列温度采集模块可连接八路热电阻温度传感器或 热电偶温度传感器,实现多路采集。TAM4000 模块通过 RS-485 总线 接口和多种通讯协议与主设备相连,主设备可以是计算机,也可以是 通用人机界面设备。通讯协议以 MODBUS-RTU、MODBUS-ASCⅡ 为主,开放模块全部功能,可实现全部参数的设置和读取。另外该 模块还支持兼容台湾研华 ADAM4000 系列通讯协议和松下 FPI 通讯 协议。TAM4000 控温模块兼容 DUT3000、DUT4000 、DUT6000 以及 TAC3000、TAC6000 数据采集/温控模块的全部功能。本产品 主要用于各种需要温度、数据采集的场合。
图 3(b) TAM4000 端子定义图(K 型热电偶温控模块) 5
图 4 为采集模块的传感器输入端子接线图。其中,传感器输入端 每个通道为 3 个接线端子,8 路共 24 位端子。热电阻温度传感器采用 三线制连接,接线如图 4 所示,8 路接法相同,热电阻温度传感器连接 时要注意三根导线要采用同一规格,且 iB 和 iC 两根导线在现场的传 感器端连接到一起。热电偶和电流、电压输入接法基本相同,如图 4.2 所示,即每组的 iA 为传感器的正端和 iB 为传感器的负端,iC 为屏蔽 端。在模块内部,8 个 C 端都接模拟信号地,是连在一起的。即 0C~7C 是连通的,该地线和电源及通讯都是隔离的。
研华ADAM4000系列在西钢热电厂锅炉控制上的应用

案例名称:研华ADAM-4000系列在西钢热电厂锅炉控制上的应用行业分类:远程监控地点项目介绍:西钢热电厂有35t/h工业锅炉两座,供汽轮发电机组发电和厂区及家属区供热。
长期以来,因测控系统陈旧,锅炉生产事故频繁,公司决定,锅炉大修同时引进微机控制。
投产后,两年运行情况表明,微机系统状态良好,各项指标达均达到预定要求,是采用研华ADAM4000系列智能模块改造老设备的一个成功案例。
⏹系统需求我们查阅了一些资料,进行了必要考查,最终归纳出三种方案:方案A:采用DCS。
浙大中控开发的JS200或和利时公司的Focs2.0适合我公司锅炉生产实际,已成功地应用于多家同类场合。
缺点是费用较昂贵。
这类系统仅软件和软件开发即需三十万元,还要再加上二十万元以上的硬件费用。
方案B:采用PLC+上位机形式。
选择西门子公司S7300系列PLC和研华公司的IPC。
此方案可靠性很高,但投资也很高,且PLC长于逻辑控制,用于锅炉生产的慢反应过程,优势不明显。
方案C:采用研华ADAM4000系列智能模块,配以该公司的IPC610H工控机。
此配置性价比很高,估算投资十万元以下,不仅能很好的满足生产工艺要求,且系统还极易扩展。
唯一难点是,在锅炉自动控制领域,当时国内尚未发现采用此种方案的设计。
在综合考虑了投资情况,性能价格比和日后的扩展功能等因素基础上,我们最终决定冒一定风险,选择方案C。
⏹系统描述1.硬件配置该系统I/O共计131点(不含冗余),其中,AI:4~20mA,55点;AO:4~20mA,10点;DI:40点;DO:26点。
根据上述I/O点情况,硬件配置为:主机系统配置:PⅢ450;PCA6176S和PCA6114P4工业母板;64M内存;IPC610机箱(内带大功率电源);PHILIPS15寸平面直角彩显;EPSON LQ-1600KIII针式打印机。
智能模块配置:ADAM4017八块;DADAM4052六块;ADAM4024三块;ADAM4060四块;ADAM4520一块。
TNA400的G代码及范例车削编程说明书

G10 资料设定1.G10 L2 Pi X Z Y C ;(工件坐标系的设定,i=1~6)(1).G10 L2 P1 X Z Y C ;(设定G54工件坐标系,其中P1可以省略)(2).G10 L2 P2 X Z Y C ;(设定G55工件坐标系)(3).G10 L2 P3 X Z Y C ;(设定G56工件坐标系)(4).G10 L2 P4 X Z Y C ;(设定G57工件坐标系)(5).G10 L2 P5 X Z Y C ;(设定G58工件坐标系)(6).G10 L2 P6 X Z Y C ;(设定G59工件坐标系)2.G10 L10 Pi X Z R Q ;(刀具参数的设定,i=1~80)P表示刀具,P1表示T01,以此类推;R为刀具圆弧半径;Q表示刀具假想刀尖点G30. 刀具返回换刀点1.G30.1刀具返回X方向换刀点→X2.G30.2刀具返回Z方向换刀点→Z3.G30.3刀具先返回X方向换刀点,再返回Z方向换刀点→X→Z4.G30.4刀具先返回Z方向换刀点,再返回X方向换刀点→Z→X5.G30.5刀具同时返回X,Z方向换刀点→X,ZG92,G96,G97,G94,G951.G92 设定最高转速格式: G92 S ;(其中S为每分钟的主轴转速,即转速/分钟;或rpm/min)2.G96 设定恒线速度格式: G96 S1= ;(设定主轴恒线速度,可简写为G96 S ;)G96 S2= ;(设定动力头恒线速度,对于单主轴而言,不需要这样设定)单位:米/分钟,m/min,恒线速度用Vc表示3.G97 设定恒转速格式: G97 S1= ;(设定主轴恒转速,可简写为G97 S ;)G97 S2= ;(设定动力头恒转速,必须依照格式)单位:转/分钟,rpm/min,用n表示,{n=(1000*Vc)/(3.14*Dm),Dm为加工直径} 4.G94 设定进给速度为每分钟进给,单位为:mm/min,毫米/分钟,用Fv表示(铣削用)5.G95 设定进给速度为每转进给,单位为:mm/r,毫米/转,用fn表示,Fv=fn*n(车削用)G00 快速位置定位1.指令格式:G00 X(U)Z(W);X,Z为绝对坐标,是相对于工件坐标原点而言U,W为相对坐标,是相对于上一点而言,U为半径值2.范例如下:G00 X23 Z1;或G00 X23 W-50G01 直线插补1.指令格式:G01 X(U)Z(W) A ,C(R) F E ;2.详细说明:(1).X , U , Z , W , 同G00(2)A表示几何直线角度有两种定义角度的方法:第一种,沿着刀具移动的方向与Z轴(即选择平面的第一轴)正向的夹角,逆时针为正,顺时针为负,即G01 Aa1 Zz1(Xx1)第二种,逆着刀具移动的方向与Z轴(即选择平面的第一轴)正向的夹角,逆时针为正,顺时针为负,即G01 A-a2 Zz1(Xx1)此机能只适用G01指令-360≦a≦360(3),C表示几何倒角机能;,C前坐标为两直线交点坐标;必须在C前面加上“,”;做倒角指令时,此单节的移动量必须大于或等于倒角量;下个单节的移动量也必须大于或等于倒角量;(4),R表示几何倒圆角机能;,R前坐标为两直线交点坐标或直线与圆弧的交点坐标,而且必须是相切的圆弧,也须在R前加上“,”;做倒圆角指令时,此单节的移动量必须大于或等于R值;下个单节的移动量也必须大于或等于R值;(5)F为进给速度,即毫米/转或毫米/分钟(6)E为倒角或倒圆角的进给速度,即转角的进给速度(7)G01模式一直保持有效,直到01群的G00,G02,G03,G33指令出现(8)范例程序G00 X23 Z1G1 W-33 F0.2G1 U10 F0.1G1 W-34 F0.2G1 U10 F0.1G1 W-14 F0.2G1 X100 A150 F0.15G1 Z-45 A150 F0.15程序G0 X13 Z1G1 Z0 F0.15G1 X30,C2 E0.08 G1 Z-25G1 X60,C5G1 Z-45程序G0 X13 Z1G1 Z0 F0.15G1 X30,R2 E0.08G1 Z-25G1 X60,R12G1 Z-45程序G0 X20 Z1G1 A90 F0.08G1 X48 Z-25 A-20 F0.2 G1 Z-40G1 X80,C2 E0.08G1 Z-70程序G0 X50 Z1G1 Z-15 F0.2G1 X40 A200,R5G1 A180,R4G1 X60 Z-85 A-40.333 G1 Z-105G02,G03 圆弧插补1.指令格式:G02 ,G03 X(U)Z(W)I K F ;G02 ,G03 X(U)Z(W)R F ;G02为顺时针圆弧插补;G03为逆时针圆弧插补X(U)圆弧终点坐标,X轴(X为绝对坐标,U为相对坐标)Z(W)圆弧终点坐标,Z轴(Z为绝对坐标,W为相对坐标)I为圆弧起点到中心之X轴坐标的半径增量值K为圆弧起点到中心之Z轴坐标的增量值R为圆弧半径F为进给速度2.详细说明:(1)I,K为圆弧起点到圆弧中心的X轴和Z轴之距离,要注意其正负号,可依如下方法:以圆弧起点为坐标原点,以+I为横轴,以+K为竖轴建立直角坐标系,然后再确定圆弧中心在此坐标系下的坐标,这样既可以确定距离,也可以判别正负号(2)在指令程式中,R为正号,其加工的圆弧比半圆小,R不能加工整圆(3)有Y轴时,G02 ,G03 X(U)Y(V)Z(W)I J K F ;(4)范例如下:G0 X25 Z1G1 Z-21 F0.15G3 X60 Z-48.27 R30 G1 Z-70 G0 X25 Z1G1 Z-21 F0.15G2 X60 Z-48.27 R30G1 Z-70程序G3 X60 Z-54.72 I-12 K-25.3 F0.1G04 每秒暂停格式:G04 X/U ;或G04 P ;G17,G18,G19平面选择功能描述:G17,IJ平面选择,即X,Y平面选择G18,KI平面选择,即Z,X平面选择G19,JK平面选择,即Y,Z平面选择G40,G41,G42,G46 刀具圆弧半径补偿刀具尖端一般是圆弧形的,当程序执行时,都在刀具的前端假想刀尖点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研华继电控制器编程说明
看完本文,您可以触类旁通,了解研华其他的控制设备。
欢迎交流:qq12778446,非聊编程,请勿加q。
下图是研华说明书中的例子:
一、命令说明
上面的例子是两种发送命令给研华控制器的方法。
方法1:#140005(cr)
这种是一次性发给一个控制器命令,可以使多个该控制器的通道闭合(通电)。
本命令的意思为控制总线上14号地址的所有通道(00),接收05的闭合指示。
05中的5,转换为二进制为00000101(8通道控制器使用),也就是第0和第2通道通电。
测试:#010005(cr)
(每个控制器默认出厂地址为01号地址。
上述命令是ascii码,要写入串口,必须转换成HEX码,才能以byte数组方式写入串口,对应字符附后,转换结果为#=23,0=30,1=31,5=35,cr=0D,往里套即可)
打开串口后,点击开
果然0、2通道通电。
关闭:
全部通道不通电。
方法2:#151201(cr)
这种是给指定控制器指定通道发送闭合(通电)命令。
一个命令,只控制单个通道。
本命令的意思为控制总线上15号地址的2号通道(命令中的12,1不变,表示单通道控制,2表示2号通道),接收闭合指示(01固定,不变)。
测试:#011301(cr)
(命令转换为HEX码,然后在以byte数组形式写入串口)
点击,开,3号标识的通道灯亮,即3号通道通道。
关闭:
全部通道不通电。
此处关闭采用针对全部通道进行关闭的方式进行。
当然,也可以针对某个通道进行单独关闭,方法同开,就是(cr)前的1,变成0.
指关闭3通道的命令如下:#011300(cr),转换后为233031313330300D
二、编程说明
以vb为例,下面是核心写入串口代码:
环境:请建立工程,加入串口控件MSCOMM32.OCX,建立窗体,加入3个按钮和2个text 框。
关闭com口
往串口写命令。
注意,这里用了text1,可以任意写入hex命令。
开、关,只是命令不同。
接收返回值,返回值也是一个byte数组,需要转换为hex
附录:ASCII码与HEX码对照表。