回复:Openness应用4 - AddIns

已锁定

周杰伦

西门子1847工业学习平台

  • 帖子

    2014
  • 精华

    16
  • 被关注

    143

论坛等级:至圣

注册时间:2011-04-19

黄金 黄金 如何晋级?

发布于 2021-03-25 09:28:12

7楼

展开查看
以下是引用百草园在2021-03-24 16:40:49的发言 >4楼

@周杰伦  您好能发下这个程序吗, 最近要做这个功能没有头绪啊,谢谢





FUNCTION "Input_SymbolName" : Void

{ S7_Optimized_Access := 'TRUE' }

AUTHOR : Watson

VERSION : 0.1

   VAR_INPUT 

      FirstScan : Bool;

      "Byte" : WString;

      "Byte.0" : Bool;

      "Byte.1" : Bool;

      "Byte.2" : Bool;

      "Byte.3" : Bool;

      "Byte.4" : Bool;

      "Byte.5" : Bool;

      "Byte.6" : Bool;

      "Byte.7" : Bool;

   END_VAR


   VAR_OUTPUT 

      结构体 : "Symbol名称";

   END_VAR


   VAR_TEMP 

      Bit名称 : WString[50];

      转换名称 : WString[50];

   END_VAR


   VAR CONSTANT 

      "I.0" : WString := WSTRING#'I.0';

      "I.1" : WString := WSTRING#'I.1';

      "I.2" : WString := WSTRING#'I.2';

      "I.3" : WString := WSTRING#'I.3';

      "I.4" : WString := WSTRING#'I.4';

      "I.5" : WString := WSTRING#'I.5';

      "I.6" : WString := WSTRING#'I.6';

      "I.7" : WString := WSTRING#'I.7';

   END_VAR



BEGIN

IF #FirstScan THEN

    //Byte.0

    #Bit名称 := GetSymbolName(variable := #"Byte.0", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.0", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称0 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.1

    #Bit名称 := GetSymbolName(variable := #"Byte.1", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.1", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称1 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.2

    #Bit名称 := GetSymbolName(variable := #"Byte.2", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.2", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称2 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.3

    #Bit名称 := GetSymbolName(variable := #"Byte.3", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.3", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称3 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.4

    #Bit名称 := GetSymbolName(variable := #"Byte.4", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.4", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称4 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.5

    #Bit名称 := GetSymbolName(variable := #"Byte.5", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.5", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称5 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.6

    #Bit名称 := GetSymbolName(variable := #"Byte.6", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.6", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称6 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    //Byte.7

    #Bit名称 := GetSymbolName(variable := #"Byte.7", size := 0);//读取Byte.0的名称

    #Bit名称 := REPLACE(IN1 := #Bit名称, IN2 := WSTRING#' ', L := 1, P := 1);//把第一位替换为空格

    #Bit名称 := DELETE(IN := #Bit名称, L := 1, P := LEN(#Bit名称));//删除最后一个字符

    

    #转换名称 := INSERT(IN1 := #"I.7", IN2 := #Byte, P := 1);//第一段名称,插入字符

    #结构体.名称7 := CONCAT(IN1 := #转换名称, IN2 := #Bit名称);//合并2个字符

    

    

    

    

END_IF;

#结构体.值0 := #"Byte.0";

#结构体.值1 := #"Byte.1";

#结构体.值2 := #"Byte.2";

#结构体.值3 := #"Byte.3";

#结构体.值4 := #"Byte.4";

#结构体.值5 := #"Byte.5";

#结构体.值6 := #"Byte.6";

#结构体.值7 := #"Byte.7";

END_FUNCTION


工控毁我青春!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15117条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。