西门子工业模块配件代理总经销商在必须使用 ANY 指针之前检查一下。在许多情况下,不再需要指针(见下表)。•当数据类型仅在程序运行中确定时,仅将数据类型 VARIANT 用于间接寻址。– 使用数据类型 VARIANT 作为 InOut形式参数来创建独立于实际参数数据类型的通用块(参见本章中的示例)。– 使用 VARIANT 数据类型而不是 ANY指针。由于集成的类型测试,可以尽早发现错误。由于符号寻址,程序代码可以很容易地理解。– 使用 VARIANT指令,例如,进行类型识别(参见以下示例和第 2.9.2章 VARIANT 指令)• 使用数组的索引而不是通过 ANY寻址数组元素(参见第 3.6.2 章 ARRAY 数据类型和间接字段访问)。表 2 -27:比较 ANY 指针和简化ANY指针有什么用? 使用 S7-1200/1500 进行简化可以处理不同数据类型的程序函数 使用 VARIANT 指针作为块的 InOut参数的函数(参见以下示例)数组的处理• 例如,读取、初始化、复制相同类型的元素默认的数组功能• 使用 #myArray[#index]读写(参见第 3.6.2 章 ARRAY 数据类型和间接字段访问)• 使用 MOVE_BLK 进行复制(参见第2.9.1 节 MOVE指令)• 通过juedui寻址传输结构和高效处理例如,通过指向函数的 ANY 指针传输用户定义的结构将结构作为 InOut 参数传输•见第 3.3.2 章引用调用注意 如果要复制非结构化 VARIANT 变量的值,您还可以使用 VariantGet代替MOVE_BLK_VARIANT(第 2.9.2 章 VARIANT 指令)。使用数据类型 VARIANT可以识别用户程序中的数据类型并做出相应的响应。 FC“MoveVariant”的以下代码显示了一种可能的编程方式。• InOut形式参数“InVar” (数据类型 VARIANT)用于显示独立于数据类型的变量。• “Type_Of”指令检测实参的数据类型•根据数据类型,使用“MOVE_BLK_VARIANT”指令将变量值复制到不同的输出形式参数。•如果未检测到实际参数的数据类型,模块将输出错误代码MOVE 指令在 STEP 7(TIA 博途) 中,可以使用以下 MOVE 指令。MOVE_BLK_VARIANT 指令是 S7-1200/1500 的新指令。表 2 -29:MOVE 指令指令 用途 特性MOVE复制值 • 将输入 IN 的参数内容复制到输出 OUT 的参数。• 输入和输出的参数必须是相同的数据类型。•参数也可以是结构体变量(PLC 数据类型)。• 复制完整的数组和结构。MOVE_BLK 复制数组 • 将数组的内容复制到另一个数组。•源数组和目标数组必须是相同的数据类型。• 复制完整的数组和结构。•也可以复制结构的几个数组元素。可以指定元素的起点和数量。UMOVE_BLK 无中断复制数组• 持续地复制数组的内容,而不会有被OB中断复制过程的风险。• 源数组和目标数组必须是相同的数据类型。MOVE_BLK_VARIANT(S7-1500 和S7-1200FW4.1 或更高版本)复制数组 • 复制一个或多个结构体变量(PLC 数据类型)• 在运行时识别数据类型•提供详细的错误信息• 除了基本数据类型和结构体数据类型外,还支持 PLC 数据类型、数组和数组 DB。 “Serialize”、“Deserialize”、“CMP”(比较)和“MOVE:复制值”等指令可以处理非常大且复杂的结构体变量。在此过程中,CPU在运行时分析变量结构。处理时间取决于要处理的变量结构的以下属性:• 结构体的复杂性• 不使用 PLC 数据类型的结构体数量•字节数组可以保存在优化块(V14 或更高版本)中。推荐• 借助 PLC 数据类型而不是“STRUCT”声明结构体•减少使用的结构体数量:– 例如,避免对非常相似的结构体进行多次声明。将它们为一个单一的结构体。–当结构体的许多元素具有相同的数据类型时,如果可能,请使用此数据类型数组。一般需要区分 MOVE、MOVE_BLK 和MOVE_BLK_VARIANT– 使用 MOVE 指令复制完整的结构体。– 使用 MOVE_BLK指令复制已知数据类型的数组的一部分。– 如果您希望复制具有仅在程序运行时才知道的数据类型的数组部分,请仅使用MOVE_BLK_VARIANT 指令。注意UMOVE_BLK:复制过程不能被操作系统的其他活动中断。在处理“无中断复制数组”指令时,CPU 的报警反应时间可能会增加。有关MOVE 指令的完整说明,请参阅 TIA 博途在线帮助。注意 更多信息可以在以下条目中找到:如何在 STEP 7(TIA博途)中复制存储区和结构体数据比较指令VARIANT_TO_DB_ANY(jinxian SCL)确定数据块号 该指令查询基于 PLC数据类型、系统数据类型创建的数据块或数组DB、背景数据块的数据块号。DB_ANY_TO_VARIANT(jinxian SCL)从VARIANT 变量的数据块创建。该指令基于 PLC 数据类型、系统数据类型创建的数据块或数组 DB、背景数据块创建 VARIANT变量。注意 有关 VARIANT 的更多说明,请参阅 TIA 博途的在线帮助。特性由于其复杂的算法,VARIANT指令需要比直接指令更长的处理时间。推荐• 如果可能,不要在循环(FOR、WHILE…)中使用 VARIANT指令,以防止不必要地增加循环时间。• 不要通过使用循环元素来复制数组,而是直接赋值完整的数组。2.9.3 RUNTIME指令“RUNTIME”指令测量整个程序、单个块或命令序列的运行时间。您可以在 LAD、FBD、SCL 和 STL(jinxianS7-1500)中调用此指令。 符号和注释2.10.1编程编辑器优点通过在程序中使用符号名称和注释,您可以使代码易于理解和阅读。完整的符号是与程序代码一起下载到控制器的,在没有离线项目可用的情况下也可以快速维护。推荐•在程序中使用注释以提高可读性。网络已折叠,网络标题注释也是可见的。•以便于同事也可以立即理解程序的方式设计程序代码。在以下示例中,您可以看到用于在编辑器中注释程序的广泛选项。示例在下图中,您可以看到LAD 编辑器中的注释选项(FBD 中的功能相同)。图 2 -34:在用户程序中注释(LAD)系统常量对于 S7-300/400控制器,硬件和软件组件的识别由逻辑地址或诊断地址执行。对于S7-1200/1500,识别是通过系统常量进行的。S7-1200/1500控制器的所有硬件和软件组件(例如,接口、模块、OB...)都有自己的系统常量。系统常量是在中央和分布式 I/O的设备组态的设置期间自动创建的。可以通过模块名称而不是硬件标识来寻址。推荐•分配与函数相关的模块名称,以便在编程过程中轻松识别模块。示例在以下示例中,可以看到系统常量是如何在用户程序中使用的。图 2-36:用户程序中的“系统常量”1321. 控制器的系统常量可在“PLC 变量 - 默认变量表”文件夹中找到。2.系统常量位于“默认变量表”的单独列表中。3. 在此示例中,为 DI模块分配了符号名称“RobotArmLeft”。您也可以在系统常量表中找到该名称下的模块。在用户程序中,“RobotArmLeft”与“GET_DIAG”诊断块互用户常量常量值可以通过用户常量的帮助保存。通常,控制器中有OB、FC 和 FB 的局部常量和整个用户程序的全局常量。优点• 用户常量可用于更改全局或本地所有使用位置的常量值。•使用用户常量,可以使程序更具可读性。特性• 本地用户常量在块接口中定义。• 全局用户常量在“PLC 变量”中定义。•用户程序仅可对用户常量读取访问。• 对于受专有技术保护的块,用户常量是不可见的。
浔之漫智控技术(上海)有限公司-西门子模组,作为西门子工业模块配件的代理总经销商,我们致力于为客户提供高质量、高性能的PLC和配件产品。
作为一家具有丰富经验和专业知识的公司,我们深知PLC在工业控制中的重要性。我们选择了西门子作为我们的合作伙伴,因为西门子PLC是quanqiulingxian的工业自动化解决方案提供商之一。无论是在制造业、能源行业还是建筑业,西门子PLC都能为客户提供卓越的性能和可靠性。
西门子PLC产品具有多种功能和配置选项,适应不同的应用需求。在我们的代理总经销商身份下,我们可以为客户提供全系列的西门子PLC及其模块配件。这些配件包括:输入/输出模块、通信模块、扩展模块等,可以满足客户各种复杂控制需求。
在我们的产品中,您将找到以下几种西门子PLC系列:
西门子S7-200系列:适用于小型自动化系统,具有紧凑的结构和高性价比。
西门子S7-300系列:适用于中型自动化系统,具有高性能和灵活的模块化结构。
西门子S7-400系列:适用于大型自动化系统,具有卓越的性能和可靠性。
除了提供PLC和模块配件,我们还为客户提供完善的技术支持和售后服务。我们的团队由经验丰富的工程师组成,可以为客户提供专业的解决方案和咨询服务。无论是产品选型、安装调试还是故障排除,我们都会全力支持客户的工业控制需求。
在选择西门子工业模块配件的代理总经销商时,您可以放心选择浔之漫智控技术(上海)有限公司-西门子模组。我们将竭诚为客户提供优质的产品、专业的服务和全面的解决方案,帮助客户实现工业控制的成功。