modbus通讯协议软件包
- 格式:doc
- 大小:51.50 KB
- 文档页数:4
ModbusMaster产品规格说明书一、产品功能简介a)支持协议说明通用协议:ModbusRtu,ModbusASCII,ModbusTCPb)支持的硬件型号说明:所有支持上述协议的设备。
c) 支持的连接说明及发送方式支持串口连接和TCP连接。
如果是串口连接,支持按Rtu和ASCII发送;如果是TCP连接,支持以socket发送.二、驱动接口:3。
0开发包三、设备添加方式a)在组态王中定义设备时请选择:通用版下:[PLC]> [莫迪康]> [ModbusRTU]> [COM][PLC]> [莫迪康] 〉[ModbusRTU(unpack)]> [COM][PLC] > [莫迪康] > [ModbusASCII] 〉[COM][PLC]> [莫迪康]〉[ModbusTCP] > [TCP]其他的设备,设备名中必须包含有ModbusRTU,或ModbusASCII,或ModbusTCP 字样。
区分大小写。
否则无法使用该驱动。
由于驱动是通过des文件里面的这些关键字进行匹配的。
英文版下:[PLC] > [Modicon] 〉[ModbusRTU]> [COM][PLC] 〉[Modicon] 〉[ModbusRTU(unpack)]> [COM][PLC] > [Modicon]〉[ModbusASCII]> [COM][PLC]> [Modicon] 〉[ModbusTCP] > [TCP]注:串口统一为“COM",以太网统一为“TCP”b)设备向导页选项的特殊说明:如果是串口设备:如果是以太网设备:网络设备需要选择串口的原因是:一个设备接口(如Com1、网卡)开启一个线程。
c)对于串口设备通讯参数的推荐设置如下无,视具体设备而定四、本设备的地址格式及地址范围串口连接方式(Rtu):Address[:Delay:BeforeDelay][|SwapF|SwapL|SwapC]Address 1-255 设备地址Delay 0—60000 发送每条命令帧后的延迟时间(毫秒)BeforeDelay 0—60000 发送每条命令帧前的延迟时间(毫秒)SwapF 0-3 浮点数的字节顺序,默认为0SwapL 0—3 长征性的字节顺序,默认为0SwapC 0—1 CRC校验的字节顺序,默认为0如:1:50:50|0|0|0串口连接方式(ASCII):同RTUTCP连接方式:IP[:Port]Address[|SwapF|SwapL|SwapC]IP 设备IP地址或域名Port 设备IP地址端口,默认为502Address 1—255设备地址SwapF 0-3 浮点数的字节顺序,默认为0(厂家沟通)SwapL 0—3 长征性的字节顺序,默认为0SwapC 0—1 CRC校验的字节顺序,默认为0如:192.168.0。
ModbusTCP通讯协议协议名称:ModbusTCP通讯协议一、引言ModbusTCP通讯协议是一种基于TCP/IP协议的通信协议,用于在工业自动化系统中实现设备之间的数据通信。
本协议旨在定义ModbusTCP通讯协议的基本规范和通信流程,以确保设备之间的可靠通信和数据交换。
二、术语和定义在本协议中,以下术语和定义适用:1. ModbusTCP:基于TCP/IP协议的Modbus通讯协议。
2. 客户端:发起通信请求的设备或软件。
3. 服务器:响应客户端请求的设备或软件。
4. 单元标识符:用于标识设备或软件的唯一标识符。
5. 寄存器:用于存储和交换数据的内存单元。
三、通信流程1. 建立连接客户端通过TCP/IP协议与服务器建立连接。
客户端发送连接请求,服务器接受请求并返回确认信息,建立连接成功。
2. 请求报文格式客户端向服务器发送请求报文,报文格式如下:- 事务标识符:用于标识请求的唯一标识符。
- 协议标识符:用于标识ModbusTCP协议。
- 长度字段:指定报文长度。
- 单元标识符:用于标识设备或软件的唯一标识符。
- 功能码:指定请求的功能类型。
- 数据字段:包含请求的具体数据。
3. 响应报文格式服务器接收到请求后,根据请求的功能码进行相应的处理,并返回响应报文。
报文格式如下:- 事务标识符:与请求报文相同的标识符。
- 协议标识符:与请求报文相同的标识符。
- 长度字段:指定报文长度。
- 单元标识符:与请求报文相同的标识符。
- 功能码:与请求报文相同的功能码。
- 数据字段:包含响应的具体数据。
4. 功能码ModbusTCP通讯协议定义了多种功能码,用于实现不同类型的数据交换和操作。
常用的功能码包括:- 读取线圈状态:用于读取设备的线圈状态。
- 读取输入状态:用于读取设备的输入状态。
- 读取保持寄存器:用于读取设备的保持寄存器数据。
- 读取输入寄存器:用于读取设备的输入寄存器数据。
- 写单个线圈:用于写入设备的单个线圈状态。
宇电AIBUS及MODBUS通讯协议说明(V8.0)AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现全面的功能,其特点是写参数的同时亦可完成读功能,因此写参数时不破坏读的循环周期时间,加上指令长度较少,因此具有比MODBUS更快的速率(尤其是有写入指令时,MODBUS的写入指令不能同时完成读下位机数据的功能,会破坏读指令的周期,延长了读的循环周期),AIBUS协议具有组建大规模过程控制系统能力。
AIBUS采用了16位的求和校正码,下位机运算快速且通讯可靠,支持9600和19200等不同波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为40mS。
仪表允许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。
AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。
基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。
最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。
这使得采用仪表+上位机结构的测控系统价格大大低于传统DCS系统,而性能及可靠性也具备比传统DCS系统更优越的潜力。
宇电AI-5系列仪表写入寿命可达100万次,而AI-7/8系列仪表则允许连续写参数,如写给定值或输出值,写入寿命高达10亿次,可利用上位机将仪表组成复杂调节系统。
一、接口规格AI系列仪表使用异步串行通讯接口,接口电平符合RS232C或RS485标准中的规定。
数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。
通讯传输数据的波特率可调为4800~19200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。
MODBUS 标准通讯协议(简版)(基于Modbus 应用协议RTU 通讯模式)1. 前言本协议适用于符合MODBUS 标准通讯协议的规定以及在Modbus 网络上以RTU 模式通信运行的设备和应用软件。
本协议按照Modbus 应用协议标准制定。
2. 波特率可选范围代码678910 11 12 13 14 波特率 2400 4800 9600 14400192002880038400576001152003. RTU 通讯数据传输模式3.1 RTU 模式每个字节( 11 位 )的格式为 :通讯传输为异步方式,并以字节(数据帧)为单位。
在主站和从站之间传递的每一个数据帧都是11位的串行数据流。
编码系统: 8–位二进制,报文中每个8 位字节含有两个4 位十六进制字符(0–9, A –F) 数 据 位: 1个 起始位8个 数据位, 首先发送最低有效位1个 奇偶校验(注:偶校验是要求的,其它模式( 奇校验,无校验 )也可以使用) 1个 停止位 (注 :使用无校验时要求2个停止位)帧校验域:循环冗余校验(CRC) 3.2 字符的串行传送方式:每个字符或字节按如下顺序发送(从左到右):最低有效位 (LSB) . . . 最高有效位 (MSB)通过配置,设备可以接受奇校验、偶校验或无校验。
如果无奇偶校验,那么传送一个附加的停止位来填充数据帧使其成为完整的11位异步字符:3.3 数据编码:Modbus 处理的所有数据按照存储数据的类型可以分为位寄存器(容量为1位)和16位寄存器(容量为16位)两种,它们的宽度都是16位(Data is packed as two bytes per register),协议允许单个选择65536个数据项,而且其读写操作可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。
在Modbus PDU 中从0~65535寻址每个数据。
Modbus 使用一个‘big-Endian ’表示地址和数据项,即最高有效字节在低地址存储,最低有效字节在高字节存储。
ATL800/ATL900自动转换开关控制器MODBUS® 通讯协议MODBUS® 协议ATL800/ATL900系列自动转换开关控制器通过光学接口和通讯扩展模块支持Modbus RTU®, Modbus ASCII®, ModbusTCP®通讯协议。
通讯扩展模块如下:EXP 10 10 USBEXP 10 11 RS 232EXP 10 12 RS485EXP 10 13 EthernetEXP 10 15 GSM/GPRS利用该协议可以使用第三方监控软件(SCADA或者其他支持Modbus®的智能设备,如PLC等读取设备状态和控制设备。
参数设置进入SETUP菜单并且选择M10菜单进行Modbus®协议配置:可以配置两个通讯扩展模块(n = 1…3。
菜单M10 –通讯串口通讯参数功能默认值范围注释P10.n.01 节点地址 01 01‐255P10.n.02 串口速率 9600120024004800960019200 38400 57600 115200P10.n.03 数据格式 8bit ‐ n 8 bit ‐ no par.8 bit,odd8 bit, even7 bit, odd7 bit, even8位无奇偶校验8位,奇校验8位,偶校验7位,奇校验7位,偶校验P10.n.04 停止位 1 1‐2P10.n.05 协议 Modbus RTU Modbus RTU Modbus ASCII Modbus TCP 对于扩展模块EXP1013(以太网模块,相应参数为:参数功能默认值范围注释P10.n.06 IP地址 192.168.1.1000.000.000.000 ‐255.255.255.255P10.n.07 子网掩码 0.0.0.0 000.000.000.000 ‐255.255.255.255P10.n.08 IP端口 1001 0‐32000P10.n.09 通道功能 SlaveSlaveGateway从站网关P10.n.10 客户端/服务器 Server SlaveServer从站主站P10.n.11 远程IP地址 0.0.0.0 000.000.000.000 ‐255.255.255.255P10.n.12 远程IP端口 1001 0‐32000P10.n.13 IP网关地址 0.0.0.0 000.000.000.000 ‐255.255.255.255MODBUS遥控终端(RTU协议如果选择Modbus®RTU协议,通讯信息格式如下:T1 T2 T3地址(8位功能(8位数据(Nx8位CRC(16位T1T2T3地址域是从站串行地址功能域是从站必须执行的功能码数据域包含发往从站的数据或者从从站按照需求读取的数据对于ATL系列控制器,数据域长度最长为80个16位寄存器(160个字节CRC域允许主站和从站检查信息的完整性如果一条信息被电气噪声或干扰破坏,CRC域允许设备识别该错误然后忽略此信息T1,T2,T3顺序对应于时间,此时间内,通讯总线上数据不可以交换以允许设备识别一条信息的结束和另一条信息的开始。
Modbus协议解析及串⼝通讯原理1.Modbus 协议通讯⽅式区别Modbus RTU协议报⽂间隔需要⼤于3.5个字符计算:2.Modbus RTU数据帧格式3.Modbus ASCII 数据帧格式4.Modbus TCP 数据帧格式5.串⼝通讯串⾏通讯分类RS485接⼝标准RS232接⼝标准1.Modbus 协议通讯⽅式区别Modbus协议分为三种通信⽅式:Modbus RTU、Modbus ASCII以及Modbus TCP。
⾸先,Modbus TCP的通信格式和Modbus RTU⾮常相似,唯⼀的差别只是Modbus RTU最后带两个字节的CRC校验,⽽Modbus TCP没有,Modbus TCP 加了消息头。
下表是MODBUS ASCII协议和RTU协议的⽐较:协议开始标记结束标记校验传输效率程序处理CR,LF LRC低直观,简单,易调试ASCII:(冒号)RTU⽆⽆CRC⾼稍复杂从上表的⽐较我们可以看到, MODBUS ASCII的协议和RTU协议相⽐, MODBUS ASCII协议拥有开始和结束标记,⽽ MODBUSRTU却没有,所以ASCII协议的程序中对数据包的处理能更加⽅使。
MODBUS ASCII协议的DATA域传输的都是可见的ASCII字符,因此在调试阶段就显得更加直观,另外它的LRC校验程序也⽐较容易编写,这些都是 MODBUS ASCII的优点; MODBUS ASCII的主要缺点是传输效率低,因为它传输的都是可见的ASCII字符,原来⽤RTU传输的数据每⼀个字节⽤ ASCII的话都要把这个字节拆分两个字节,⽐如RTU传输⼀个⼗六进制数OXF9, AsCII需要传输字符F和字符9,对应的 ASCII码0x46和0×39两个字节,这样它的传输的效率肯定就⽐RTU 低。
所以⼀般来说,如果所需要传输的数据量较⼩可以考虑使⽤ASCII协议,如果所需传输的数据量⽐较⼤,最好能使⽤RTU协议。
Modbus Slave调试工具注册破解使用图文介绍出处:本站整理作者:佚名日期:2011-1-17 18:18:16 [大中小] 评论: 0 | 我要发表看法今天开始发布Modbus测试工具(Modbus Slave调试工具),明天发布Modbus测试工具(Modbus Master调试工具)。
Modbus Slave调试工具,自然是用来模拟Modbus设备的工具,主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。
常用模拟实际设备进行调试。
典型工具如:Modbus Slave。
Modbus Slave是Modbus子设备模拟工具,帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。
可以32个窗口中模拟多达32个Modbus子设备!与Modbus Poll的用户界面相同,支持功能01, 02, 03, 04, 05, 06, 15, 16, 22 和23,监视串口数据。
支持以下Modbus协议: RTU ASCII Modbus TCP 支持的MODBUS功能码: 01: 读取线圈状态 02: 读取输入状态 03: 读取保持寄存器 04: 读取输入寄存器 05: 强置单线圈 06: 预置单寄存器 15: 强置多线圈 16: 预置多寄存器 22: 位操作寄存器 23: 读/写寄存器。
Modbus Slave调试工具下载:/soft/21410.html1、Modbus Slave 使用1)、安装注册:此软件不需安装,解压缩附件中Modbus Slave.rar,双击执行mbslave.exe即可,如果是第一次运行,会弹出如下注册提示:此时,可以双击执行keygen.exe,如下图:程序中Name、Email、Reg Key顺序对应上面三个注册项,其中前两项可由用户填写,或直接按其默认即可,第三项Reg Key根据前两项自动生成。
XXXXXDCS与丹东华通仪表通讯方案前言:DCS与第三方系统的通讯HOLLIAS-MACS系统具有广泛的开放性,支持Profibus、TCP/IP、OPC/ODBC、MODBUS、MODBUS PLUS 等通讯协议,采用RS232/RS422/RS485、以太网络等接口方式,通过通讯站或交换机实现与其它系统的信息交流,系统间根据需要实现单向或双向交流。
1.HOLLIAS-MACS与其他控制系统通讯基础HOLLIAS-MACS与外系统接口的功能有专用的软件包,用于与其它的仪表、PLC、外部DCS、MIS/SIS 等的数据交换。
HOLLIAS-MACS提供了一套标准的HOLLIAS-MACS实时数据库接口规范,照此规范,用户可编制各种应用软件,或直接应用现有的软件包存取实时数据库。
目前,HOLLIAS-MACS提供以下几种标准软件:●可用于MIS/SIS、值长站软件及HOLLIAS-MACS系统间的数据交换。
●基于RS232/RS485的DEH与DCS的接口软件。
●各类PLC接口软件包(如SIEMENS、AB、MODICON、GE等),通过Profibus可冗余接入HOLLIAS-MACS I/O总线,安全可靠。
● Modbus/ Modbus Plus接口软件,可用于与各种系统的连接。
● Infi90的CIU接口软件● FTP接口软件、写文件方式的MIS/写数据库方式的MIS接口软件/WEB MIS接口软件。
● SIS系统通讯软件包●多种巡测仪接口软件●功率仪表接口软件(Polling等接口规范)●通用AGC通讯接口软件上述接口软件包是HOLLIAS-MACS系统经过上千套DCS实际应用逐步完善的。
基本上能满足目前火电厂的设备接口要求。
同时和利时具备开发能力,对非常规的接口通讯,也能很好的满足用户的要求。
2 常用通讯接口接线定义2.1R S232如果使用8线制,则接线定义如下:如果使用3线制(地线可以不接),则接线定义如下:2.2R S485管脚定义如下:RS485是直通线,地线可以不接;如果使用屏蔽线,则屏蔽层一端接地。
AIBUS及MODBUS通讯协议说明(V8.0)AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现全面的功能,其特点是写参数的同时亦可完成读功能,因此写参数时不破坏读的循环周期时间,加上指令长度较少,因此具有比MODBUS更快的速率(尤其是有写入指令时,MODBUS的写入指令不能同时完成读下位机数据的功能,xzfse会破坏读指令的周期,延长了读的循环周期),AIBUS协议具有组建大规模过程控制系统能力。
AIBUS采用了16位的求和校正码,下位机运算快速且通讯可靠,支持9600和19200等不同波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为40mS。
仪表允许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。
AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。
基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。
最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。
这使得采用仪表+上位机结构的测控系统价格cvz口电平符合RS232C或RS485标准中的规定。
数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。
通讯传输数据的波特率可调为4800~19200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。
AI仪表采用多机通讯协议,采用RS485通讯接口,则可将1~80台的仪表同时连接在一个通讯接口上。
RS485通讯接口通讯距离长达1KM以上x(部分实际应用已达3-4KM),只需两根线就能使多台AI 仪表与计算机进行通讯,优于RS232通讯接口。
文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
1word格式支持编辑,如有帮助欢迎下载支持。
ModBus通讯协议软件包
ModBus通讯协议简介
Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互
之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通
讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,
从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备
如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以
选择以太网口。其通信遵循以下的过程:
·主设备向从设备发送请求;
·从设备分析并处理主设备的请求,然后向主设备发送结果;
·如果出现任何差错,从设备将返回一个异常功能码。
英创ModBus通讯协议软件产品简介
英创公司推出的ModBus通讯协议软件产品主要应用于英创ARM9嵌入式主板环境,英创工控
主板均带有丰富的串口、网络资源、通用GPIO接口等,同时具有强大的处理能力。结合ModBus通
讯协议软件,就可非常方便地构成符合ModBus通讯规范的主控(Master)及设备(Slave)的应用
平台。针对ModBus通讯的主从方式这一特点,英创公司的ModBus通讯协议软件包分为两个可独
立使用的部分,即“ModBus主控协议软件”(简称modbus_Master)以及“ModBus设备方协议软
件”(简称modbus_Slave)。目前英创ModBus通讯协议软件运行于WinCE环境下,均以C函数
加静态LIB库的形式提供给客户。其主要特征如下:
·非常适用于实时的工业应用。
·可以支持基于串口的ModBus通讯协议应用或TCP的ModBus通讯协议应用。
·RTU传输模式。
·支持大多数的Modbus功能码操作,包括对线圈、离散开关输入的位操作,以及对寄存器的字
节操作。
·支持广播地址。
·可以灵活设置ModBus通讯的超时时间。
·可以获取通讯中传输协议的错误代码的详细信息。
英创ModBus协议软件通讯关系图
文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
2word格式支持编辑,如有帮助欢迎下载支持。
英创ModBus协议软件支持的功能码
功能码 描述
1 读单个线圈
2 读离散量输入
3 读多个寄存器
4 读输入寄存器
5 写单个线圈
6 写单个寄存器
15 写多个线圈
16 写多个寄存器
22 屏蔽写寄存器
23 读/写寄存器
软件基本使用方法
为了方便应用程序的使用,对不同的通讯介质保持一致的代码形式,英创所提供的ModBus协议
软件(包括modbus_Master和modbus_Slave)中的API函数可以同时支持基于串口和TCP的M
odbus协议,应用程序只需要在调用初始化函数时,用不同参数区分即可,有关参数的说明请参见相
应的头文件:modbus_Master.h和modbus_Slave.h
文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
3word格式支持编辑,如有帮助欢迎下载支持。
1、modbus_Master 的应用
作为Modbus客户端模式的应用,主要是准备请求并向服务器设备发送请求,并等待服务器的响
应。在做此类应用开发时,用户可参考Modbus标准文献以及被控设备的通讯接口数据手册,直接调
用英创提供的modbus_Master软件包提供了相应的操作API函数,来完成对服务器设备的访问和控
制。在进行此类应用开发时,用户只需要包含modbus_master.h/ modbus_master.lib 即可。
2、modbus_Slave 的应用
作为ModBus服务器模式的应用,主要需要实现了对于ModBus应用报文的分析与响应,但这
还只是ModBus整个通讯的一部分,另一部分是还需要有对应用数据的访问,这部分的内容则需要用
户自己来进行定义。为了方便客户的使用,在modbus_Slave软件包中通过函数指针的形式,实现
了这些用户接口函数的自动加载,将用户应用数据处理和ModBus应用报文响应关联起来。用户只需
根据需求定义这些接口函数来实现相应的功能,各个函数具体的定义是通过专门的一个CPP文件:D
ataProvider.cpp来实现。
由此可见在这类的开发应用时,需包含两个部分的内容,一部分是 modbus_slave.h/ modbu
s_slave.lib定义的API函数;另一部分是DataProvider.h /DataProvider.cpp定义的用户数据接
口函数,其中接口函数需要用户在DataProvider.cpp中具体实现。
为了及时地响应ModBus应用报文,需要注意的是在程序设计时应设计一个线程反复调用mod
bus_Slave执行函数,该函数为阻塞模式。
举例如下:
(1)启动modbus设备方协议
hPort = mbusSlave_StartupServer( _T('*'), 1, 10000, mbusSlave_Interface );
或者
hPort=mbusSlave_StartupServer( _T('COM3:9600-8-1-0'),1,10000,
mbusSlave_Interface );
(2)线程中调用执行函数Serverloop 响应请求
while( 1 )
{
// 调用执行函数,用于对ModBus报文的分析和响应。
result = mbusSlave_ServerLoop( hPort );
if( result!=0 ) // 检查是否返回错误
{
// 出错处理:本例为获取并打印错误代码的文本信息
wcscpy( szText, mbusSlave_GetErrorText( result ) );
i1 = wcslen( szText );
if( i1>0 )
{
文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。
4word格式支持编辑,如有帮助欢迎下载支持。
wcstombs( strText, szText, i1 );
printf( ' error code: %s!\n', strText );
}