企业信息

    浔之漫智控技术(上海)有限公司

  • 7
  • 公司认证: 营业执照已认证
  • 企业性质:私营企业
    成立时间:2017
  • 公司地址: 上海市 松江区 永丰街道 上海市松江区广富林路4855弄52号3楼
  • 姓名: 聂航
  • 认证: 手机已认证 身份证已认证 微信未绑定

    西门子模块6GK7243-1EX01-0XE0产品描述

  • 所属行业:电气 工控电器 DCS/PLC系统
  • 发布日期:2024-06-18
  • 阅读量:8
  • 价格:面议
  • 产品规格:模块式
  • 产品数量:1000.00 台
  • 包装说明:全新
  • 发货地址:上海松江永丰  
  • 关键词:西门子代理商,西门子一级代理商

    西门子模块6GK7243-1EX01-0XE0产品描述详细内容

    西门子模块6GK7243-1EX01-0XE0产品描述

    3)、15功能码强置多线圈的通断数据功能函数

    Function FCN15(nport,node,address,Count:longint;Sendstr:pchar):longint;stdcall;

    参数:

    nport:   串口号,取值为1~8,代表COM1~COM8;

    node:   modbus从站号,取值1~255;

    address: 元件地址,取值范围从00001~0XXXX地址区(逻辑线圈)值(你要写标准modbus的00001地址这个值为0000,依次类推)

    Count:  写入位元件个数,一次多1000个但不能出寻址范围;

    Sendstr: 给位元件写入的值按8个为一组和成字节值在写入,该值为2个一组的16进制字符串组其取值为00~FF(整数值为0~255);

    返回值: 长整数,操作成功返回1,不能写入或操作错误返回0;

                      ---------- - ~ - ------
    写字符串序列如:  | 00 | FF | 10 | 64 |   ~    | 08 | 04 |
                      ---------- - ~ - ------

    实际字符串与位地址的数值应如下表:  
               
    位地址:    | 40 | 39 | 38 | 36 | 35 | 34 | 33 | 32 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 
                -----------------------------------------
    各位赋值:   | 0  | 1  | 1  | 0  | 0  | 1  | 0  | 0  | 0  | 1  | 0  | 1  | 0  | 0  | 0  | 0  |
                -----------------------------------------
    16进制串:  |         6         |         4         |         5         |         0         |
                -----------------------------------------

    使用举例:

    FCN06(1,2,19,10,"CD01"),由COM1给modbus 2号从站00020~00029(标准modbus地址)10个位单元写如相应值,返回值为1表示成功

    写入值的参考 27~20:CD; 29~28:01; 

    位地址:    | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | -- | -- | -- | -- | -- | -- | 29 | 28 | 
                -----------------------------------------
    各位赋值:   | 1  | 1  | 0  | 0  | 1  | 1  | 0  | 1  | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 1  |
                -----------------------------------------
    16进制串:  |         C         |         D         |         0         |         1         |
                -----------------------------------------

    注:没有注册的用户只能写入00001~00006范围的状态值;

    4)、16功能码写多个保持寄存器数据功能函数

    Function FCN16(nport,node,address,Count:longint;Sendstr:pchar):longint;stdcall;

    参数:

    nport:   串口号,取值为1~8,代表COM1~COM8;

    node:   modbus从站号,取值1~255;

    address: 元件地址,取值范围从40001~4XXXX地址区(保持寄存器)值(你要写标准modbus的40001地址这个值为0000,依次类推)

    Count:  写入字元件个数,一次多60个但不能出寻址范围;

    Sendstr: 给字写入的值,该值为4个一组的16进制字符串组其取值为0000~FFFF(整数值为0~65535);

    返回值: 长整数,操作成功返回1,不能写入或操作错误返回0;

    当要写入多个字值时依次排列即可。如给40001与40002写值100和1000,先将100转成16进制字符串0064、1000转成16进制字符串03E8,

    则sendstr=006403E8;一次多写64个字即字符串长应小于等于256;

                                ---------- ----   ~  ---------
    写字符串序列如:             | 0064 | 03E8 | 0010 | 6004 |   ~     | 0008 | 0400 |
                                ---------- ----   ~  ---------

    使用举例:

    FCN16(1,2,1,"000A0102"),由COM1给modbus 2号从站40002(标准modbus地址)的字单元写入给10(16进制000A)、40003(标准modbus地址)

    的字单元写入给258(16进制0102)返回值为1表示成功;

    注:没有注册的用户只能写入40001~40003范围的状态值;

    5)、modbus功能码16的扩展功能函数

           1、单保持寄存器的0~15相应位的置位 (40001.0-40001.15~4XXXX.0-4XXXX.15)
                
           Function FCN16_xSet(nport,node,address,Bit:longint):longint;stdcall;

    参数:

    nport:   串口号,取值为1~8,代表COM1~COM8;

    node:   modbus从站号,取值1~255;

    address: 元件地址,取值范围从40001~4XXXX地址区(保持寄存器)值(你要写标准modbus的40001地址这个值为4000,依次类推)

    Bit:     保持寄存器的位,取值0~15;

    返回值: 长整数,操作成功返回1,不能写入或操作错误返回0;

    使用举例:

    FCN16_xSet(1,12,2,0),由COM1将modbus 12号从站40003(标准modbus地址)的0个位状态值置1,返回值为1表示成功

    注:没有注册的用户不能使用本功能;

            2、单保持寄存器的0~15相应位的复位 (40001.0-40001.15~4XXXX.0-4XXXX.15)
                
            Function FCN16_xReset(nport,node,address,Bit:longint):longint;stdcall;

    参数:

    nport:   串口号,取值为1~8,代表COM1~COM8;

    node:   modbus从站号,取值1~255;

    address: 元件地址,取值范围从40001~4XXXX地址区(保持寄存器)值(你要写标准modbus的40001地址这个值为4000,依次类推)

    Bit:     保持寄存器的位,取值0~15;

    返回值: 长整数,操作成功返回1,不能写入或操作错误返回0;

    使用举例:

    FCN16_xReset(1,10,3,12),由COM1将modbus 10号从站40004(标准modbus地址)的12个位状态值置0,返回值为1表示成功

    注:没有注册的用户不能使用本功能;

            3、单保持寄存器的0~15相应位的置复位 (40001.0-40001.15~4XXXX.0-4XXXX.15)指使相应的位短时间通断一次(接通约60ms)
                
            Function FCN16_xSetReset(nport,node,address,Bit:longint):longint;stdcall;

    参数:

    nport:   串口号,取值为1~8,代表COM1~COM8;

    node:   modbus从站号,取值1~255;

    address: 元件地址,取值范围从40001~4XXXX地址区(保持寄存器)值(你要写标准modbus的40001地址这个值为4000,依次类推)

    Bit:     保持寄存器的位,取值0~15;

    返回值: 长整数,操作成功返回1,不能写入或操作错误返回0;

    使用举例:

    FCN16_xSetReset(1,10,9,10),由COM1将modbus 10号从站40010(标准modbus地址)的10个位状态值置1后约60ms再置0,返回值为1表示成功

    注:没有注册的用户不能使用本功能;

    四、DLL附加函数说明 (本段函数对未注册用户没有限制,可以使用。)

    1、串口打开状态的读取

    Function ComTrue(nport:longint):longint;stdcall;

    参数:

    noprt: 串口号,取值为1~8,代表COM1~COM8;

    返回值:长整型,串口成功打开返回“1”,否则返回“0”;

    这里读取是DLL有效了串口的控制权,如果其他程序占用(串口不存在)等原因仍返回“0”。

    2、整数转换成16进制字符串 (为VC等非RAD开发环境所增设)

    Function CIntToHex(Dcint,Digits:Longint):Pchar;stdcall;

    参数:

    Cint: 待转换整数,取值为(0~65535);

    Digits: 转换的字符串位数,位数小于实际位数时按实际输出;

    在参数错误等非法的情况下返回“Error@”

    使用举例:

    CIntToHex(200,2),则返回字符串“C8@”;
    CIntToHex(200,4),则返回字符串“00C8@”;
    CIntToHex(200,8),则返回字符串“000000C8@”;
    CIntToHex(4500,4),则返回字符串“1194@”;
    CIntToHex(4500,3),则返回字符串“1194@”,因为“194”不足以表示4500这个数所以按实际输出字符串“1194@”;

    "@"为字符串数据的终止符。

    3、16进制字符串转换成整数 (为VC等非RAD开发环境所增设)

    Function CHexToInt(CHex:Pchar):Longint;stdcall;

    参数:

    CHex: 待转换字符串,取值为(0000~FFFF);

    使用举例:

    CHexToInt("03E8"),则返回整数1000;

    注:在参数不正确等出错情况下返回值为“-1”。

    4、抽取(0~65535)所示整数中(0~15)某个位的值

    Function CinBin(CHex,Start:longint):longint;stdcall;

    参数:

    CHex: 待转换整数,取值为0~65535(0000~FFFF);

    Start: 抽取的位,取值为(0~15);

    使用举例:

    CinBin(15,3),则返回值1; 
    CinBin(15,4),则返回值0;
    CinBin(1000,6),则返回值1;

    读取MB0组合成的字节值为“FC”(252)时,要读取M0.1的值时,则调用CinBin(252,1)返回值0表示M0.1的值为0。

    注:在参数不正确等出错情况下返回值为“-1”。

    5、返回字符串Text左边的Count个字符  (为VC等非RAD开发环境所增设)

    Function CLeftStr(Text:Pchar;Count:longint):Pchar;stdcall;

    参数:

    Text: 字符串原型;

    Count: 返回左侧字符串个数;

    在参数错误等非法的情况下返回“Error@”

    使用举例:

    CleftStr("123456", 3) = "123@";

    "@"为字符串数据的终止符。

    6、返回字符串Text右边的Count个字符  (为VC等非RAD开发环境所增设)

    Function CRightStr(Text:Pchar;Count:longint):Pchar;stdcall;

    参数:

    Text: 字符串原型;

    Count: 返回右侧字符串个数

    在参数错误等非法的情况下返回“Error@”

    使用举例:

    CRightStr("123456", 3) = "456@";

    "@"为字符串数据的终止符。

    7、返回字符串Text从Start开始的Count个字符 (为VC等非RAD开发环境所增设)

    Function CMidStr(Text:Pchar;Start,Count:longint):Pchar;stdcall;

    参数:

    Text: 字符串原型;

    Start: 返回字符串的起始位置;

    Count: 返回字符串个数;

    在参数错误等非法的情况下返回“Error@”

    使用举例:

    CMidStr("123456",2,3) = "234@";

    "@"为字符串数据的终止符。

    8、字符串Cstr开始于字符串Ostr的位置 (为VC等非RAD开发环境所增设)

    Function Cinstr(Ostr,Ckstr:Pchar;Dcint:Longint):Longint;stdcall;

    参数:

    Ostr:  字符串原型;

    Cstr:  查询的字符串;

    Dcint: 设定查询字符串的起始位置,取值>=1,即少从源字符串的个字符开始查询;

    返回值:长整型;

    使用举例:

    CinStr("1Tfdg23456","2",2) = 6

    注:在参数不正确等出错情况下返回值为“0”。

    9、PC喇叭的报警过程函数;

    Function MyBeep(SoundHz:longint):longint;stdcall;

    参数:SoundHz:长整型;

    返回值:长整型,操作成功返回“1”,否则返回“0”。

    使用举例:

    MyBeep(2000); 按2000的频率发出报警声。

    DLL中关于传出字符串值的函数都以"@"为字符串函数值终止符,这是对多开发环境应用时方便用户正确读取返回字符串数据而设。

    五、Delphi、VB、VC语言环境的开发使用说明

    1、Delphi语言环境开发说明

    在Delphi环境下将modbus.dll、serialmodbus.slip(文件)复制到应用程序目录下(即将上述文件与编译后的可执行文件方入同一文件内);

    在工程文件的主程序窗体(pas)文件中声明:

      Function ComOpen(nport,BaudRate,DataBits,Parity,StopBits:longint;User:Pchar):longint;stdcall;External’modbus.dll’;
      Function ComClose(nport:longint):longint;stdcall;External’modbus.dll’;
      Function FCN01(nport,node,address,Count:longint):Pchar;stdcall;External’modbus.dll’;
      Function FCN02(nport,node,address,Count:longint):Pchar;stdcall;External’modbus.dll’;
      Function FCN03(nport,node,address,Count:longint):Pchar;stdcall;External’modbus.dll’;
      Function FCN04(nport,node,address,Count:longint):Pchar;stdcall;External’modbus.dll’;
      Function FCN05S(nport,node,address:longint):longint;stdcall;External’modbus.dll’;
      Function FCN05R(nport,node,address:longint):longint;stdcall;External’modbus.dll’;
      Function FCN06(nport,node,address:longint;Sendstr:pchar):longint;stdcall;External’modbus.dll’;
      Function FCN15(nport,node,address,Count:longint;Sendstr:pchar):longint;stdcall;External’modbus.dll’;
      Function FCN16(nport,node,address,Count:longint;Sendstr:pchar):longint;stdcall;External’modbus.dll’;
      Function FCN16_xSet(nport,node,address,Bit:longint):longint;stdcall;External’modbus.dll’;
      Function FCN16_xReset(nport,node,address,Bit:longint):longint;stdcall;External’modbus.dll’;
      Function FCN16_xSetReset(nport,node,address,Bit:longint):longint;stdcall;External’modbus.dll’;
      Function ComTrue(nport:longint):longint;stdcall;External’modbus.dll’;
      Function MyBeep(SoundHz:longint):longint;stdcall;External’modbus.dll’;

    其它附加函数Delphi有实用函数,建议用Delphi自带函数,如需使用声明参照上例;

    注:所有DLL的函数声明方能使用,建议本DLL的声明采用示例所示的静态声明方式。 声明后可以在程序中使用这些函数,附加函数

    中除ComTrue、CinBin、MyBeep等Delphi系统自带有类似功能函数。通信时先使用ComOpen函数打开串口,在串口打开后可以有效操作

    相关函数,为确保通信可在程序运行开始时打开串口,程序退出前关闭串口。应用程序退出之前请务必将关闭所有串口,如串口没有关闭

    而退出程序将抛出异常错误。

    确保应用程序在关闭释放前关闭打开的串口。解决方法,在bbbb的OnDestroy事件中加入如下语句:

    for i:=1 to 8 do
    begin
      if ComTrue(i)=1 then ComClose(i);
    end;

    在Delphi中给中给DLL中的函数传pchar值问题,建议bbbbbb型转换到Pchar型采用strPCopy()函数,Pchar型转换到bbbbbb型采用straps()函数,

    不使用直接转换法即bbbbbb到Pchar类型采用Mpchar=Pchar(str),Pchar到bbbbbb采用str:=Mpchar (str为bbbbbb类型、Mpchar为Pchar

    类型)。上述可以详细参照DEMO程序。
     
    2、VB语言环境开发说明

    在VB环境下将modbus.dll、serialmodbus.slip(文件)复制到应用程序目录下(即将上述文件与编译后的可执行文件方入同一文件夹内);

    函数说明中给出的是Delphi的函数原型,在VB中声明时只要注意一下类型的对应即可Delphi中的longint类型对应VB中的Long类型、

    Delphi中的Pchar对应VB中的bbbbbb类型,下面给出主要函数的声明:

    Private Declare Function ComOpen Lib "modbus.dll" (ByVal nport As Long, ByVal BaudRate As Long, ByVal DataBits As Long, ByVal Parity As Long, ByVal StopBits As Long, ByVal User As bbbbbb) As Long
    Private Declare Function ComClose Lib "modbus.dll" (ByVal nport As Long) As Long
    Private Declare Function FCN01 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long) As bbbbbb
    Private Declare Function FCN02 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long) As bbbbbb
    Private Declare Function FCN03 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long) As bbbbbb
    Private Declare Function FCN04 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long) As bbbbbb
    Private Declare Function FCN05S Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long) As Long
    Private Declare Function FCN05R Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long) As Long
    Private Declare Function FCN06 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Sendstr As bbbbbb) As Long
    Private Declare Function FCN15 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long, ByVal Sendstr As bbbbbb) As Long
    Private Declare Function FCN16 Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Count As Long, ByVal Sendstr As bbbbbb) As Long
    Private Declare Function FCN16_xSet Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Bit As Long) As Long
    Private Declare Function FCN16_xReset Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Bit As Long) As Long
    Private Declare Function FCN16_xSetReset Lib "modbus.dll" (ByVal nport As Long, ByVal node As Long, ByVal address As Long, ByVal Bit As Long) As Long
    Private Declare Function ComTrue Lib "modbus.dll" (ByVal nport As Long) As Long
    Private Declare Function MyBeep Lib "modbus.dll" (ByVal SoundHz As Long) As Long
    Private Declare Function CinBin Lib "modbus.dll" (ByVal CHex As Long, ByVal start As Long) As Long

    其它附加函数VB有实用函数,建议用VB自带函数,如需使用声明参上面的例子给相应的函数声明;做完上述声明后,便可以在程序中使用

    相关函数了。本DLL是串口通信库,通信时先使用ComOpen函数打开串口,在串口打开后可以有效操作相关函数,为保证通信可以在

    程序运行开始时打开串口,程序退出前关闭串口。在应用程序关闭之前请务必将关闭所有串口,如您的程序串口没有关闭退出程序将抛

    出异常。当出现这样的异常请改您的程序,确保应用程序在关闭释放前关闭所打开的串口。

    解决方法,在bbbb的Unload事件中加入如下例:

    If ComTrue(1)=1 then
      ComClose(1)
    End if 

    为确保Unload事件有效执行程序中不应使用“End”语句,而尽量使用“Unload”语句释放所有窗体,因使用“End”语句系统不会执行

    正常的窗体释放等事件而直接退出程序,如程序中有bbbb1,bbbb2两个窗体,则使用下面语句:

    Unload  bbbb1
    Unload  bbbb2

    VB会在所有窗体关闭后释放所有占用资源。上述可以详细参照DEMO程序。当然也可在使用“End”语句前将串口关闭也是可以释放串口的。

    3、VC语言环境开发说明

    在VC环境下将modbus.dll、serialmodbus.slip(文件)复制到应用程序目录下(即将上述文件与编译后的可执行文件方入同一文件夹内);

    在VC中使用DLL一般都是采用动态声明的方式,函数说明中给出的是Delphi的函数原型,在VC中声明时只要注意一下类型的对应即可

    Delphi中的longint类型对应VC中的Long类型、Delphi中的Pchar对应VC中的char* 类型,


    PLC控制和DCS控制系统不是一个逻辑层次上的概念,从名称上就能看出:PLC是以功能命名,DCS是以体系结构命名。从原理上看PLC就可以组成DCS。当然两者性能差异还是存在的,要具体看产品和需要。从应用角度来说,简单地以PLC,DCS来区分,往往会走人误区。

    dcs控制系统与PLC控制区别:DCS是一种“分散式控制系统”,而PLC(可编程控制器)只是一种控制“装置”,两者是“系统”与“装置”的区别。系统可以实现任何装置的功能与协调,PLC装置只实现本单元所具备的功能。

    DCS网络是整个系统的神经,DCS系统通常采用的标准协议TCP/IP。它是双冗余的高速通讯网络,系统的拓展性与开放性好.而PLC因为基本上都为单个小系统工作,在与别的PLC或上位机进行通讯时,所采用的网络形式基本都是单网结构,网络协议也经常与标准不符。在网络上PLC没有很好的保护措施。

    DCS整体考虑方案,操作员站都具备工程师站功能,站与站之间在运行方案程序下装后是一种紧密联合的关系,任何站、任何功能、任何被控装置间都是相互连锁控制,协调控制;而单用PLC互相连接构成的系统,其站与站(PLC与PLC)之间的联系则是一种松散连接方式,做不出协调控制的功能。

    DCS在整个设计上就留有大量的可扩展性接口,外接系统或扩展系统都十分方便,PLC所搭接的整个系统完成后,想随意的增加或减少操作员站都是很难实现的。

    为保证DCS控制的设备的,DCS采用了双冗余的控制单元,当重要控制单元出现故障时,都会有相关的冗余单元实时无扰的切换为工作单元,保证整个系统的。PLC所搭接的系统则需要配置双PLC实现冗余。

    对各种工艺控制方案新是DCS的一项基本的功能,当某个方案发生变化后,工程师只需要在工程师站长将改过的方案编译后,执行下装命令就可以了,下装过程是由系统白动完成的,不影响原控制方案运行。系统各种控制软件与算法可以将工艺对象的控制精度提高。

    而对于PLC构成的系统来说,工作量其庞大,需要确定所要编辑新的是哪个PLC,然后要用与之对应的编译器进行程序编译,后再用的机器(读写器)一对一的将程序传送给这个PLC,在系统调试期间,大量增加调试时间和调试成本,而且不利于日后的维护。

    在控制精度上相差甚远。这就决定了为什么在大中型控制项目中(500点以上),基本不采用全部由PLC所连接而成的系统的原因DCS系统所有I/O模块都带有CPU,可以实现对采集及输出信号品质判断与标量变换,故障带电拔,随机换。而PLC模块只是简单电气转换元,没有智能芯片,故障后相应单元全部瘫痪。




    http://zhangqueena.b2b168.com
    欢迎来到浔之漫智控技术(上海)有限公司网站, 具体地址是上海市松江区永丰街道上海市松江区广富林路4855弄52号3楼,联系人是聂航。 主要经营电气相关产品。 单位注册资金单位注册资金人民币 100 万元以下。 价格战,是很多行业都有过的恶性竞争,不少厂家为了在价格战役中获胜,不惜以牺牲产品质量为代价,而我们公司坚决杜绝价格战,坚持用优质的原材料及先进的技术确保产品质量,确保消费者的合法利益。