PROFINET的GSD文件描述

2023-11-16

目录

一、基础介绍:

二、文件命名:

三、文件结构:

 1、根元素:ISO15745Profile

 2、行规头部:ProfileHeader

3、行规体: ProfileBody

3.1、设备标识:DeviceIdentity

3.2、设备功能:DeviceFunction

3.3、应用处理:ApplicationProcess

3.3.2、模块列表:ModuleList

3.3.3、值列表:ValueList

3.3.6、图形列表:GraphicsList

3.3.7、分类列表:CategoryList

3.3.8、外部文本列表:ExternalTextList

附录1:分配ID前缀列表

参考资料:


一、基础介绍:

        1、作用:用来描述PROFINET设备的功能,包含与工程相关的和设备数据交换相关的数据。

        2、描述语言:GSDML(通用站描述标记语言),是一种基于国际标准的PROFINET行业规范,与XML(可扩展标记语言)本身无关,使用标准的XML解析器可解析PROFINET的GSD文件。

        3、内容:描述与通信相关的参数Parameter;通过DAP(Device Access Points-设备访问点)的定义描述整个设备族;描述与模块(Modules)相关的信息,并用于已定义的DAP

二、文件命名:

        PROFINET的GSD文件采用XML语言描述,后缀名为xml。按照约定,PROFINET I/O设备的GSD文件应遵循如下的命名规则:

GSDML-[架构版本]-[制造商名称]-[设备族名称]-[GSD发布日期].xml

下面是一个GSDML文件名示例: 

GSDML-V2.31-Renesas-TPS1-Template-20170222.xml

 

1、架构版本:该版本标识符必须与文件名GSDML-设备行规-[架构版本].xsd的版本标识符一致;

xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile ..\xsd\GSDML-DeviceProfile-V2.31.xsd"

2、制造商名称:该名称允许使用连字符和空格。为了防止不同的设备制造商生成相同的文件名,推荐使用PNO-ID(VendorID)作为名称中的一部分,但貌似很多厂家都没有接受这种建议;

3、设备族名称:定义在GSDML中描述的设备族,在该名称中允许使用连字符和空格;

<Family MainFamily="I/O" ProductFamily="Renesas TPS-1 solution board"/>

        很显然瑞萨TPS-1评估板命名与设备族名称不一致,推荐使用ProductFamily作为设备族名称。

4、GSD发布日期:必须以"yyyymmdd"来指定。

三、文件结构:

        GSD文件基于ISO 15745,由行规头部(Profile Header)行规体(Profile Body)组成。

<!--XML特殊声明:文档的声明必须写在第一行第一列-->
<?xml version="1.0" encoding="UTF-8"?>
​
<!--xml:代表此文件是XML文件;
version=“1.0”:代表此文件用的是XML1.0标准;
encoding=“UTF-8”:代表此文件所用的字符集,默认值为utf-8。-->

 以下图表中1,0..1表示的意思如下表格:

 1、根元素:ISO15745Profile

<!--示例-->
<ISO15745Profile xmlns="http://www.profibus.com/GSDML/2003/11/DeviceProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile ..\xsd\GSDML-DeviceProfile-V2.31.xsd">
    ...
</ISO15745Profile>

 

1、xmlns:表明元素ISO15745Profile的默认命名空间;

2、xmlns:xsi:表明XSD文件的命名空间;

3、xsi:schemaLation:指明XSD文件的路径,不同架构版本的xsd路径不同。

xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile ..\xsd\GSDML-DeviceProfile-V2.31.xsd"
xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile ..\xsd\GSDML-DeviceProfile-V2.4.xsd"

 2、行规头部:ProfileHeader

        规则头以ProfileHeader元素标记,包括了规则的标识、版本、名称、及ISO15745的相关信息,这个一般不怎么会改变,所以没有对具体内容进行说明。

<!--示例-->
<ProfileHeader>
    <ProfileIdentification>PROFINET Device Profile</ProfileIdentification>
    <ProfileRevision>1.00</ProfileRevision>
    <ProfileName>Device Profile for PROFINET Devices</ProfileName>
    <ProfileSource>PROFIBUS Nutzerorganisation e. V. (PNO)</ProfileSource>
    <ProfileClassID>Device</ProfileClassID>
    <ISO15745Reference>
        <ISO15745Part>4</ISO15745Part>
        <ISO15745Edition>1</ISO15745Edition>
        <ProfileTechnology>GSDML</ProfileTechnology>
    </ISO15745Reference>
</ProfileHeader>

3、行规体: ProfileBody

        规则体包含了PROFINET I/O设备(子站)的实际数据,由三个部分组成:

1、Device Identity(设备标识块):包含了用于确认该设备的标识信息;

2、Device Function(设备功能块):包含了用于描述设备功能的数据;

3、Application Process(应用过程块):这是整个通用站描述文件的主要部分,包含了设备访问点列表、模块列表、子模块列表、值列表等PROFINET I/O设备的数据。

3.1、设备标识:DeviceIdentity

         包括了该PROFINET I/O设备的供应商ID、设备ID及描述等信息。

<!--示例-->
<DeviceIdentity VendorID="0x02C7" DeviceID="0x1234">
    <InfoText TextId="TOK_DevIdent_InfoText"/>
    <VendorName Value="Renesas Electronics"/>
</DeviceIdentity>

1、VendorID(供应商标识):16Bit,由制造商向PI协会申请授权;

2、DeviceID(设备标识):16Bit,用于IO现场设备的详细区分,由制造商定义,不需要向PI协会申请授权;

3、InfoText(描述信息):用于描述产品信息;

4、VendorName(供应商名字):可以自己修改,根据公司名字填写。

3.2、设备功能:DeviceFunction

<!--示例-->
<DeviceFunction>
    <Family MainFamily="I/O" ProductFamily="Renesas TPS-1 solution board"/>
</DeviceFunction>

 

  1. MainFamily(主系列):可选项Drives,Encoders,Gateway,I/O,Sensors
  2. ProductFamily(产品系列):可以自己修改。

3.3、应用处理:ApplicationProcess

        包括了设备访问点列表,模块列表,子模块列表,值列表,通道诊断列表,单元诊断列表,图形列表,分类列表,外部文本列表。

 3.3.1、设备访问点列表:DeviceAccessPointList

 

        DeviceAccessPointItem,这部分是PROFINET I/O设备访问接口的描述,可以理解为分布式I/O的接口模块,一个GSD文件中可以包括多个接口模块的描述。 

<!--示例-->
<DeviceAccessPointList>
    <!--0.DeviceAccessPointItem-->
    <DeviceAccessPointItem ID="DAP 3" PhysicalSlots="0..64" ModuleIdentNumber="0x00000003" MinDeviceInterval="4" ImplementationType="ERTEC200P" DNS_CompatibleName="Hengxin-PN-w200" FixedInSlots="0" ObjectUUID_LocalIndex="1" MultipleWriteSupported="true" SharedDeviceSupported="true" DeviceAccessSupported="true" NumberOfDeviceAccessAR="1" MaxSupportedRecordSize="8192" NameOfStationNotTransferable="true" ParameterizationSpeedupSupported="true" LLDP_NoD_Supported="true" ResetToFactoryModes="2" CheckDeviceID_Allowed="true" PowerOnToCommReady="490" IOXS_Required="false" RequiredSchemaVersion="V2.31" PNIO_Version="V2.31" AddressAssignment="LOCAL;DCP">
        <!--1.ModuleInfo-->
        <ModuleInfo CategoryRef="ID_IO_Module">
            <Name TextId="TOK_Standard_MRP"/>
            <InfoText TextId="TOK_ModInfo_InfoTextId_DAP3"/>
            <VendorName Value="NingBo HengXin"/>
            <OrderNumber Value="Hengxin-PN-w200-v1.0"/>
        </ModuleInfo>
        <!--2.CertificationInfo-->
        <CertificationInfo ConformanceClass="C" ApplicationClass="Isochronous;HighPerformance" NetloadClass="III"/>
        <!--3.SubslotList-->
        <SubslotList>
            <SubslotItem SubslotNumber="32768" TextId="TOK_Subslot_8000"/>
            <SubslotItem SubslotNumber="32769" TextId="TOK_Subslot_8001"/>
            <SubslotItem SubslotNumber="32770" TextId="TOK_Subslot_8002"/>
        </SubslotList>
        <!--4.IOConfigData-->
        <IOConfigData MaxInputLength="2048" MaxOutputLength="2048"/>
        <!--5.UseableModules-->
        <UseableModules>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_Weight"        AllowedInSlots="1" FixedInSlots="1"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_Status"        AllowedInSlots="2" FixedInSlots="2"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_Gross_Weight"  AllowedInSlots="3" FixedInSlots="3"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_Flow"          AllowedInSlots="4" FixedInSlots="4"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_Division"      AllowedInSlots="5" FixedInSlots="5"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Read_FullScale"     AllowedInSlots="6" FixedInSlots="6"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Write_Division"     AllowedInSlots="7" FixedInSlots="7"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Write_FullScale"    AllowedInSlots="8" FixedInSlots="8"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Write_Status"       AllowedInSlots="9" FixedInSlots="9"/>
            <ModuleItemRef ModuleItemTarget="ID_Mod_Write_Calibration"  AllowedInSlots="10" FixedInSlots="10"/>
        </UseableModules>
        <!--6.VirtualSubmoduleList-->
        <VirtualSubmoduleList>
            <VirtualSubmoduleItem ID="DAP 3" SubmoduleIdentNumber="0x0001" Writeable_IM_Records="1 2 3 4" IM5_Supported="true" MayIssueProcessAlarm="false">
                <IOData/>
                <ModuleInfo>
                    <Name TextId="TOK_Standard_MRP"/>
                    <InfoText TextId="TOK_ModInfo_InfoTextId_DAP3"/>
                </ModuleInfo>
            </VirtualSubmoduleItem>
        </VirtualSubmoduleList>
         <!--7.SystemDefinedSubmoduleList-->
        <SystemDefinedSubmoduleList>
            <InterfaceSubmoduleItem ID="IDS_3I" SubslotNumber="32768" SubmoduleIdentNumber="0x0002" IsochroneModeSupported="true" IsochroneModeInRT_Classes="RT_CLASS_3" SupportedRT_Classes="RT_CLASS_1;RT_CLASS_3" TextId="TOK_DAP_InterfaceModule" SupportedProtocols="SNMP;LLDP" NetworkComponentDiagnosisSupported="true" PTP_BoundarySupported="true" DCP_BoundarySupported="true" MulticastBoundarySupported="true" DCP_HelloSupported="true" MaxFrameStartTime="1600" MinNRT_Gap="960" DelayMeasurementSupported="true" Writeable_IM_Records="1 2 3 4" IM5_Supported="true">
                <RT_Class3Properties ForwardingMode="Absolute;Relative" MaxBridgeDelay="2088" MaxBridgeDelayFFW="1024" MaxRangeIR_FrameID="1024" MaxNumberIR_FrameData="1024" StartupMode="Legacy;Advanced" MaxDFP_Frames="1" MaxDFP_Feed="340" AlignDFP_Subframes="false" FragmentationType="Dynamic" MaxRedPeriodLength="4000" MinFSO="1760" MinRTC3_Gap="1120" MinYellowTime="10240" YellowSafetyMargin="160" DFP_OutboundTruncationSupported="false" MaxRetentionTime="30000"/>
                <SynchronisationMode SupportedRole="SyncSlave" MaxLocalJitter="300" T_PLL_MAX="1000" SupportedSyncProtocols="PTCP" PeerToPeerJitter="250"/>
                <ApplicationRelations NumberOfAR="4" StartupMode="Legacy;Advanced" NumberOfAdditionalInputCR="0" NumberOfAdditionalMulticastProviderCR="0" NumberOfAdditionalOutputCR="0" NumberOfMulticastConsumerCR="0" PullModuleAlarmSupported="true">
                    <TimingProperties ReductionRatio="1 2 4 8 16 32 64 128 256 512" SendClock="8 16 32 64 128"/>
                    <RT_Class3TimingProperties ReductionRatioPow2="2 4 8 16" SendClock="4 6 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128" ReductionRatio="1"/>
                </ApplicationRelations>
                <MediaRedundancy SupportedRole="Client" MRPD_Supported="true"/>
            </InterfaceSubmoduleItem>
            <PortSubmoduleItem ID="IDS_3P1" SubslotNumber="32769" SubmoduleIdentNumber="0x0003" TextId="TOK_Port1" MaxPortRxDelay="198" MaxPortTxDelay="6" IsDefaultRingport="true" MAUType="100BASETXFD" MAUTypes="16" PortDeactivationSupported="true" LinkStateDiagnosisCapability="Up+Down" ShortPreamble100MBitSupported="true" CheckMAUTypeSupported="true" CheckMAUTypeDifferenceSupported="true" Writeable_IM_Records="1 2 3 4" IM5_Supported="true">
                <MAUTypeList>
                    <MAUTypeItem Value="16" AdjustSupported="true"/>
                </MAUTypeList>
            </PortSubmoduleItem>
            <PortSubmoduleItem ID="IDS_3P2" SubslotNumber="32770" SubmoduleIdentNumber="0x0003" TextId="TOK_Port2" MaxPortRxDelay="198" MaxPortTxDelay="6" IsDefaultRingport="true" MAUType="100BASETXFD" MAUTypes="16" PortDeactivationSupported="true" LinkStateDiagnosisCapability="Up+Down" ShortPreamble100MBitSupported="true" CheckMAUTypeSupported="true" CheckMAUTypeDifferenceSupported="true" Writeable_IM_Records="1 2 3 4" IM5_Supported="true">
                <MAUTypeList>
                    <MAUTypeItem Value="16" AdjustSupported="true"/>
                </MAUTypeList>
            </PortSubmoduleItem>
        </SystemDefinedSubmoduleList>
        <!--8.Graphics-->
        <Graphics>
            <GraphicItemRef Type="DeviceSymbol" GraphicItemTarget="ID_Graph_3"/>
        </Graphics>
    </DeviceAccessPointItem>
</DeviceAccessPointList>

3.3.2、模块列表:ModuleList

 

        该部分是PROFINET I/O设备中包含的模块的描述,它可以是一种可选择插入的模块(比如模块化的I/O设备),也可以是一种永久集成在I/O设备中的模块。

        ModuleItem,这部分是PROFINET I/O设备模块的描述,一个GSD文件中可以包括多个设备模块的描述。

<!--示例1-->
<ModuleList>
    <ModuleItem ID="ID_Mod_Read_Weight" ModuleIdentNumber="0x00001001">
        <!--1.ModuleInfo-->
        <ModuleInfo>
            <Name TextId="TOK_Mod_Read_Weight"/>
            <InfoText TextId="TOK_Info_Read_Weight"/>
        </ModuleInfo>
        <!--2.VirtualSubmoduleList-->
        <VirtualSubmoduleList>
            <VirtualSubmoduleItem ID="1001" SubmoduleIdentNumber="0x0001" FixedInSubslots="1" API="0" MayIssueProcessAlarm="false">
                <IOData>
                    <Input Consistency="All items consistency">
                        <DataItem DataType="Unsigned32" TextId="TOK_Read_Weight" UseAsBits="false"/>
                    </Input>
                </IOData>
                <ModuleInfo>
                    <Name TextId="TOK_Mod_Read_Weight"/>
                    <InfoText TextId="TOK_Info_Read_Weight"/>
                </ModuleInfo>
                <PROFIenergy ProfileVersion="V1.0"/>
            </VirtualSubmoduleItem>
        </VirtualSubmoduleList>
    </ModuleItem>
</ModuleList>
 <!--示例2-->
<ModuleList>
    <ModuleItem ID="ID_Mod_ControlStatus" ModuleIdentNumber="0x00001901">
        <!--1.ModuleInfo-->
        <ModuleInfo>
            <Name TextId="TOK_TextId_ControStatus"/>
            <InfoText TextId="TOK_InfoTextId_ControlStatus"/>
        </ModuleInfo>
        <!--2.VirtualSubmoduleList-->
        <VirtualSubmoduleList>
            <VirtualSubmoduleItem ID="1901" SubmoduleIdentNumber="0x0001" FixedInSubslots="1" API="0" MayIssueProcessAlarm="false">
                <IOData>
                </IOData>
                <RecordDataList>
                    <ParameterRecordDataItem Index="1" Length="8" TransferSequence="0">
                        <Name TextId="TOK_GeneralParm"/>
                        <Const Data="0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00" ByteOffset="0"/>
                        <Ref ValueItemTarget="Modbus_Write_Mode" DataType="Bit" ByteOffset="0" BitOffset="3" DefaultValue="0" AllowedValues="0..1" Changeable="true" Visible="true" TextId="IDT_MODBUS_WRITE_MODE"/>
                        <Ref ValueItemTarget="Retans_En" DataType="Bit" ByteOffset="0" BitOffset="7" DefaultValue="0" AllowedValues="0..1" Changeable="true" Visible="true" TextId="IDT_RETANS_EN"/>
                        <Ref ValueItemTarget="Modbus_Baudrate" DataType="Unsigned8" ByteOffset="1" BitOffset="0" DefaultValue="15" AllowedValues="11 13 15 16 17 18 19 20" Changeable="true" Visible="true" TextId="IDT_MODBUS_BAUDRATE"/>
                        <Ref ValueItemTarget="Modbus_DataLen" DataType="Unsigned8" ByteOffset="2" BitOffset="0" DefaultValue="8" AllowedValues="8" Changeable="true" Visible="true" TextId="IDT_MODBUS_DATALEN"/>
                        <Ref ValueItemTarget="Modbus_Parity" DataType="Unsigned8" ByteOffset="3" BitOffset="0" DefaultValue="0" AllowedValues="0..2" Changeable="true" Visible="true" TextId="IDT_MODBUS_PARITY"/>
                        <Ref ValueItemTarget="Modbus_StopBit" DataType="Unsigned8" ByteOffset="4" BitOffset="0" DefaultValue="1" AllowedValues="1..2" Changeable="true" Visible="true" TextId="IDT_MODBUS_STOPBIT"/>
                        <Ref ValueItemTarget="Modbus_Reply_Time" DataType="Unsigned8" ByteOffset="5" BitOffset="0" DefaultValue="20" AllowedValues="1 2 3 4 5 10 20 30 40 50 60 70 80 90 100 200 255" Changeable="true" Visible="true" TextId="IDT_MODBUS_REPLY_TIME"/>
                        <Ref ValueItemTarget="Modbus_Idle_Time" DataType="Unsigned8" ByteOffset="6" BitOffset="0" DefaultValue="10" AllowedValues="1 2 3 4 5 10 20 30 40 50 60 70 80 90 100 200" Changeable="true" Visible="true" TextId="IDT_MODBUS_IDLE_TIME"/>
                    </ParameterRecordDataItem>
                </RecordDataList>
                <ModuleInfo>
                    <Name TextId="TOK_TextId_ControStatus"/>
                    <InfoText TextId="TOK_InfoTextId_ControlStatus"/>
                </ModuleInfo>
                <PROFIenergy ProfileVersion="V1.0"/>
            </VirtualSubmoduleItem>
        </VirtualSubmoduleList>
    </ModuleItem>
</ModuleList>

 

3.3.3、值列表:ValueList

        该部分包含了字段设备的单个参数具体值和关联文本之间的赋值。

 <!--示例1-->
<ValueList>
    <ValueItem ID="SubstitutionMode">
        <Assignments>
            <Assign TextId="Replacement value" Content="1"/>
            <Assign TextId="Last value" Content="0"/>
        </Assignments>
    </ValueItem>
</ValueList>  
 <!--示例2-->
<ValueList>
    <ValueItem ID="Modbus_Write_Mode">
        <Assignments>
            <Assign Content="0" TextId="Polling_Send"/>
            <Assign Content="1" TextId="Different_Send"/>
        </Assignments>
    </ValueItem>
</ValueList>

3.3.4、通道诊断列表:ChannelDiagList 

        该部分包含了通道的诊断信息,即通道的错误编号及其描述。

 

 3.3.5、单元诊断列表:UnitDiagTypeList

        该部分包含了该PROFINET I/O设备的诊断信息。

 

3.3.6、图形列表:GraphicsList

        该部分是GSD文件的图形列表,即在组态工具中显示的图形(图标)。

3.3.7、分类列表:CategoryList

        该部分包含了GSD文件的分类信息,比如DI、DQ、AI等模块的分类;

3.3.8、外部文本列表:ExternalTextList

附录1:分配ID前缀列表

 

参考资料:

  1. Profinet从站开发(1)- 初识ERTEC200P
  2. PROFINET工业以太网教程(16)-GSDML文件详解
  3. XSD文件详解
  4. Profinet GSD Checker: PN-IO设备的GSD文件xml语法检查器
  5. profinet协议开发文件
  6. GSDML / GSDX Specification for PROFINET v2.352
  7. 西门子GSDML文件用户手册
  8. 《PROFINET工业通信》[德] Manfred Popp著

注:原文链接

致谢:PROFINET的GSD文件描述 - 知乎 (zhihu.com) 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PROFINET的GSD文件描述 的相关文章

  • PROFINET协议-DCP实践

    这里就上篇文章 Profinet协议解析 DCP 内容进行实践 xff0c 通过实验验证各操作的准确性 xff0c 并且也介绍一些基本的通信分析方法 xff0c 不必使用昂贵的抓包工具 xff08 某东200左右 xff09 xff0c 使
  • PROFINET 链路简述

    如上为 Profinet 的简易收发链路图 xff0c 其中收发各有四条路径 xff0c 三个中继桥 租用分别如下 xff1a RX 端 xff1a CTRL xff1a 控制管理帧的通道 xff0c 例如 LLDP 的邻居协议相关帧 xf
  • LCD图片显示、触摸屏、音乐播放、缩放图片和播放视频

    一 GEC6818开发板的LCD 1 LCD 1 原理 LCD屏幕是由一个个像素组成的 横向像素个数和纵向像素个数是LCD的一个重要指标 称为像素分辨率 当前举例开发板的分辨率是 800X480 LCD显示从屏幕左上角的像素开始 直到右下角
  • 【Java文件流】管理文件和文件夹:File类

    Java中不像C C 那样设有专门的文件打开 关闭 跳转等方式 直接交给File类管理 开放几个方法 直接操作文件和文件夹 这十分利于新手入门 文章目录 方法 构造方法 路径问题 创建文件 文件夹方法 删除文件 文件夹方法 判断方法 获取方
  • 使用miniserve快速搭建文件服务

    当我们想自己搭建一个 HTTP 文件服务向其他人分享文件 或者往其他设备上传输文件时 又不想花费时间去研究 Nginx IIS FTP 这些东西 我们可以通过 miniserve 一键生成简约 美观的文件服务器 访问 miniserve 客
  • Microchip Studio 7.0 如何编译工程项目

    Microchip Studio 7 0 系列教程 1 Microchip Studio 7 0 如何修改字体大小Microchip Studio 7 0 如何修改字体大小 2 MicroChip Studio 7 0如何快速打开 h文件
  • RestTemplate转发请求

    需求 服务端A接收到来自于前端的请求后 要使用RestTemplate将请求转发给服务端B 然后将服务端B的返回转发给前端 根据请求类型的不同 分为 常规请求转发 文件上传转发 文件下载转发 常规请求转发 RequestMapping tr
  • TPS-1教学:TPS-1 PROFINET Demo Board概述视频

    TPS 1教学 TPS 1 PROFINET Demo Board概述 电子发烧友网 elecfans com
  • 【C语言】文件相关函数详解

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 文件和流 1 程序文件 2 数据文件 3 流 二 文件
  • 小点dian儿:pandas数据存入文件,行索引处理

    小点dian儿 存入数据的时候 我们希望对数据在系统的行名 保存或者不保存 参数 index None 类似 header False不保存列名 在我们不进行如上的设计的时候 系统或分配默认的行index 0 1 2 在我们将运行结果存入文
  • Python 将控制台输出另存为日志文件

    文章目录 Python 将控制台输出另存为日志文件 需求 方法一 使用 Logger 类 推荐 方法二 仅使用 sys 方法三 使用 logging 模块 参考文献 Python 将控制台输出另存为日志文件 需求 在 PyCharm 中或者
  • 西门子1200PLC与数控系统808D实现S7通信

    在机床自动化改造时 数控机床和PLC之间进行数据交互 实现数控机床自动控制的功能 需要使用支持的通讯协议或者硬件接线的方式实现 我们知道 西门子系列产品支持西门子S7通讯协议 如何通过西门子S7协议实现西门子1200PLC与数控系统808D
  • 6款免费的PDF解锁软件

    下面这些软件提供不同的选项来解锁PDF文件 如 暴力攻击 字典攻击 网络搜索 掩码攻击和键搜索攻击选项 支持可以部署的各种攻击方法 如 简单方法 复杂方法和混合方法 也可以为攻击设置不同的选项 例如 要包括的字符和数字 要扫描的密码长度等
  • python 文件解压缩

    文章目录 python 文件解压缩 1 zip 解压 2 zip 压缩 3 tar 解压 4 tar 压缩 5 gz 解压 6 gz 压缩 7 tar gz tgz 解压 8 tar gz tgz 压缩 9 rar 压缩 10 rar 解压
  • S7-1500与两台S7-1200 Profinet 通讯

    警告 本方案实现的是S7 1500和2台S7 1200都组态在同一个博图软件中 然后实现S7 1500和2台S7 1200之间的Profinet通信 参见下图 并不是大家想像的博图软件中只组态一台S7 1500 然后通过网络和其它2台S7
  • PROFINET从站设备描述文件

    目录 一 GSDML文件名格式 二 设备标识信息 三 设备支持的通讯周期时间 四 设备支持的槽位和数据模块 相信熟悉工业现场的工程师们 对于PROFIBUS和PROFINET这两个工业协议都不陌生 过去在使用PROFIBUS现场总线时 从站
  • PROFINET的GSD文件描述

    目录 一 基础介绍 二 文件命名 三 文件结构 1 根元素 ISO15745Profile 2 行规头部 ProfileHeader 3 行规体 ProfileBody 3 1 设备标识 DeviceIdentity 3 2 设备功能 De
  • C#读取文件时中文显示问号

    StreamReader reader new StreamReader test txt Encoding Default string str reader ReadToEnd Console WriteLine str reader
  • 图解PROFINET——PROFINET IO设备类型

    PROFINET IO的设备类型分为控制器 监视器 设备 DP Master System PROFINET IO System DP Master Class 1 PROFINET IO Controller DP Slave PROFI
  • Java Word转PDF

    两种方式 documents4j groupdocs 一 documents4j 1 添加依赖

随机推荐

  • 【编程练习】回转寿司

    题目来源 牛客 美团2021校招笔试编程题 第3题 题目描述 题解 参考了别人的思路 这个问题可以分解为经典贪心 回转 当不考虑回转 环形 情形时 只需要用贪心求解最大连续子串值即可 当考虑回转 环形 情形时 可反向思考 就是 求解非环形连
  • matlab神经网络工具箱实现两个输入的BP神经网络

    请问各位大佬 matlab神经网络工具箱怎么实现具有两个特征的BP神经网络啊 是将以行为单位将每个样本的每一个特征按列存放就可以吗
  • upload-labs第1~2关 小试牛刀

    第一关 文件重命名 工具 Burp 蚁剑 原理 文件名修改 源码解析 先在前端判断是否为图片格式 是的话 就开始上传 也就是前端绕过 先传一个jpg格式的 再用burp抓包 改包 就可以实现前端验证绕过 绕过过程 文件上传肯定离不开一句话木
  • 全球根服务器分别部署在哪里?

    全球真的只有13台根服务器么 10台根服务器都在美国 如果根服务器被关闭 我们会不会被断网 关于DNS部署与根服务器的几点论述 知名网络黑客防御专家 东方联盟创始人郭盛华透露 根名称服务器是任何域名系统 DNS 服务器 它响应 DNS 根区
  • AI Challenger 2018 即将进入决赛,八大数据集抢先看

    雷锋网 AI 研习社消息 由创新工场 搜狗 美团点评 美图联合主办的 AI Challenger 2018 即将进入第二阶段比赛 今年的大赛主题是 用 AI 挑战真实世界的问题 主办方提供超过 300 万人民币奖金 8 月 29 日至 11
  • CMake下调用anaconda的pytorch及numpy传参CV::Mat给python(多线程版)

    经测试发现上次写的 CMake下调用anaconda的pytorch及numpy传参CV Mat给python 在多线程下就挂了 经过各种实验 终于完成了多线程的实现 在此分享一下 主要结构如下 Created by daybeha on
  • Vue中的三种绑定方式

    1 属性绑定 div img alt div
  • 《逆袭进大厂》 C++ 八股文问题目录

    如果有没看过前两期的小伙伴们可以点击下面两篇文章去温习一下 逆袭进大厂 之C 篇49问49答 绝对的干货 逆袭进大厂 第二弹之C 进阶篇59问59答 4W字超强汇总 知乎 逆袭进大厂 第三弹之C 提高篇79问79答 知乎 不逼逼了 逆袭进大
  • 解决 mac zsh 所有命令失效

    https www cnblogs com zhangrunhao p 9970656 html
  • Python - 使用多处理并行处理受 CPU 限制的任务

    多元处理 英语 Multiprocessing 也译为多进程 多处理器处理 多重处理 指在一个单一电脑系统中 使用二个或二个以上的中央处理器 以及能够将计算工作分配给这些处理器 拥有这个能力的电脑系统 也被称为是多元处理器系统 Multip
  • 如何克隆一个虚拟机/如何把虚拟机克隆一份给别人用/虚拟机互相通信

    https blog csdn net csdnliuxin123524 article details 80641649 https blog csdn net qq 42774325 article details 81189033 h
  • sqil-labs LESS5报错注入通关教程

    Less 5 报错注入 id 1 页面有回显 第一步 判断注入类型是数字型还是字符型 id 1 出现报错为 1 LIMIT 0 1 可判断为字符型且为单引号闭合 报错里面有数字 第二 判断字段数 使用order by order by 3时
  • JDBC 连接 DB2 的一个简单示例

    一 先贴上代码 后作解释 java源代码 public void getConnect Connection conn null PreparedStatement ps null ResultSet rs null try Class f
  • java多线程保证顺序执行

    前言 举例说明 比如要去冰箱里面拿牛奶 那么正常步骤是这样的 1 打开冰箱 2 拿出牛奶 3 关上冰箱 代码实现是这样的 public static void main String args Thread A new Thread new
  • Python-OpenCV 处理图像(一):基本操作

    0x00 图片读 写和显示操作 安装好 OpenCV 之后 首先尝试加载一张最简单的图片并显示出来 代码示例 第一种方式使用cv2 cv的LoadImage ShowImage和SaveImage函数 import cv2 cv as cv
  • SYMTCP: Eluding Stateful Deep Packet Inspection with Automated Discrepancy Discovery论文翻译

    SymTCP 基于自动发现差异的有状态深度包检测技术 Zhongjie Wang Shitong Zhu Yue Cao Zhiyun Qian Chengyu Song Srikanth V Krishnamurthy Kevin S C
  • Java里的date类型 加上秒单位后的时间

    时间加上秒后的时间 日期 public static Date timePastTenSecond Integer second String otime try SimpleDateFormat sdf new SimpleDateFor
  • Linux配置kdump大小,Kdump配置及测试

    How do I configure kexec kdump on Red Hat Enterprise Linux 5 Release Found Red Hat Enterprise Linux 5 Note for virtualiz
  • IDEA(2023)修改默认缓存目录

    作者介绍 一个有梦想 有理想 有目标的 且渴望能够学有所成的追梦人 学习格言 不读书的人 思想就会停止 狄德罗 个人主页 进入博主主页 专栏系列 无 欢迎小伙伴们访问到博主的文章内容 在浏览阅读过程发现需要纠正的地方 烦请指出 愿能与诸君一
  • PROFINET的GSD文件描述

    目录 一 基础介绍 二 文件命名 三 文件结构 1 根元素 ISO15745Profile 2 行规头部 ProfileHeader 3 行规体 ProfileBody 3 1 设备标识 DeviceIdentity 3 2 设备功能 De