如何将STEP7的块导出及后续

新项目用博图,但是电脑配置太渣,所以两台电脑同时开,有时候用另一台的STEP7编程序,导出来在导入到博图。
  1. STEP7里打开需要生成源程序的块
    在这里插入图片描述
  2. 点击“文件”–“生成源文件”
    在这里插入图片描述
  3. 输入名称点确定
    在这里插入图片描述
  4. 选择对应的块,地址选择“符号”这样可移植性好 在这里插入图片描述
  5. 生成的源文件可以在项目程序的“源文件”中看到
    在这里插入图片描述
    可以看到这里和SCL语言非常类似在这里插入图片描述

后记,导入博图后用源文件生成的块是无法转换语言的,因为源文件是STL格式,所以导入后还是STL格式,且无法转换为LAD格式。

FUNCTION_BLOCK “mot.”
TITLE =
VERSION : 0.1

VAR_INPUT
iMode : INT ;
bAuto : BOOL ;
bMan1 : BOOL ;
bMan2 : BOOL ;
bMaint1 : BOOL ;
bMaint2 : BOOL ;
bDisa1 : BOOL ;
bDisa2 : BOOL ;
bFalt1 : BOOL ;
bFalt2 : BOOL ;
bFalt3 : BOOL ;
cNO_1 : COUNTER ;
cNO_2 : COUNTER ;
cSet : INT ;
tNo_1 : TIMER ;
tNo_2 : TIMER ;
END_VAR
VAR_IN_OUT
bOp1 : BOOL ;
bOp2 : BOOL ;
bVf : BOOL ;
bflag : BOOL ;
END_VAR
VAR_TEMP
sss : WORD ;
ddd : INT ;
no_0 : BOOL ;
no_1 : BOOL ;
no_2 : BOOL ;
x : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =

  O     #x; 
  ON    #x; 
  =     L      5.0; 
  A     L      5.0; 
  A(    ; 
  L     #iMode; 
  L     0; 
  ==I   ; 
  )     ; 
  =     #no_0; 
  A     L      5.0; 
  A(    ; 
  L     #iMode; 
  L     1; 
  ==I   ; 
  )     ; 
  =     #no_1; 
  A     L      5.0; 
  A(    ; 
  L     #iMode; 
  L     2; 
  ==I   ; 
  )     ; 
  =     #no_2; 

NETWORK
TITLE =

  A(    ; 
  A(    ; 
  A(    ; 
  A     #bAuto; 
  A(    ; 
  A     #no_0; 
  AN    #bflag; 
  O     ; 
  AN    #no_0; 
  A     #no_1; 
  O     #bFalt2; 
  O     #bDisa2; 
  )     ; 
  O     ; 
  AN    #bAuto; 
  A     #bMan1; 
  )     ; 
  AN    #bFalt1; 
  O     ; 
  AN    #bAuto; 
  A     #bMaint1; 
  )     ; 
  AN    #bDisa1; 
  O     #tNo_2; 
  )     ; 
  AN    #bOp2; 
  =     #bOp1; 

NETWORK
TITLE =

  A(    ; 
  A(    ; 
  A     #bOp1; 
  A     M      0.5; 
  CU    #cNO_1; 
  BLD   101; 
  NOP   0; 
  NOP   0; 
  A     #bflag; 
  R     #cNO_1; 
  L     #cNO_1; 
  T     #sss; 
  NOP   0; 
  A     #cNO_1; 
  )     ; 
  JNB   _001; 
  L     #sss; 
  T     #ddd; 
  SET   ; 
  SAVE  ; 
  CLR   ; 

_001: A BR;
) ;
A( ;
L #ddd;
L #cSet;
>=I ;
) ;
S #bflag;
NETWORK
TITLE =

  A(    ; 
  A(    ; 
  A(    ; 
  A     #bAuto; 
  A(    ; 
  A     #no_0; 
  A     #bflag; 
  O     ; 
  AN    #no_0; 
  A     #no_2; 
  O     #bFalt1; 
  O     #bDisa1; 
  )     ; 
  O     ; 
  AN    #bAuto; 
  A     #bMan2; 
  )     ; 
  AN    #bFalt2; 
  O     ; 
  AN    #bAuto; 
  A     #bMaint2; 
  )     ; 
  AN    #bDisa2; 
  O     #tNo_2; 
  )     ; 
  AN    #bOp1; 
  =     #bOp2; 

NETWORK
TITLE =

  A(    ; 
  A(    ; 
  A     #bOp2; 
  A     M      0.5; 
  CU    #cNO_2; 
  BLD   101; 
  NOP   0; 
  NOP   0; 
  AN    #bflag; 
  R     #cNO_2; 
  L     #cNO_2; 
  T     #sss; 
  NOP   0; 
  A     #cNO_2; 
  )     ; 
  JNB   _002; 
  L     #sss; 
  T     #ddd; 
  SET   ; 
  SAVE  ; 
  CLR   ; 

_002: A BR;
) ;
A( ;
L #ddd;
L #cSet;
>=I ;
) ;
R #bflag;
NETWORK
TITLE =

  A(    ; 
  A     #bAuto; 
  A(    ; 
  A(    ; 
  A     #no_0; 
  AN    #bflag; 
  O     ; 
  AN    #no_0; 
  A     #no_1; 
  O     #bFalt2; 
  O     #bDisa2; 
  )     ; 
  A     #bOp1; 
  O     ; 
  A(    ; 
  A     #no_0; 
  A     #bflag; 
  O     ; 
  AN    #no_0; 
  A     #no_2; 
  O     #bFalt1; 
  O     #bDisa1; 
  )     ; 
  A     #bOp2; 
  )     ; 
  O     ; 
  A(    ; 
  O     #bMan1; 
  O     #bMan2; 
  O     #bMaint1; 
  O     #bMaint2; 
  )     ; 
  A(    ; 
  O     #bOp1; 
  O     #bOp2; 
  )     ; 
  )     ; 
  AN    #bFalt1; 
  AN    #bFalt2; 
  AN    #bFalt3; 
  L     S5T#3S; 
  SD    #tNo_1; 
  NOP   0; 
  NOP   0; 
  NOP   0; 
  A     #tNo_1; 
  =     #bVf; 

NETWORK
TITLE =

  A     #bVf; 
  L     S5T#3S; 
  SF    #tNo_2; 
  NOP   0; 
  NOP   0; 
  NOP   0; 
  NOP   0; 

END_FUNCTION_BLOCK
最后附上块,网络1中有L 0.5这个临时变量,在STEP7中是可以通过的
但是在博图中是无法通过编译的,会提示“临时变量仅可进行符号寻址”
解决方法有两个,
第一种方法,建议使用at覆盖变量。见图1。
在图1中,temp1是一个word类型,可以直接对它操作,如果想对它(temp1)里的位进行操作,可以使用abc这个变量,abc这个变量是temp1的副本(at变量),它们是等同的。可以看到它们地址是相同的。
关于at变量的操作,可以看portalv11软件中的帮助。或者看手册“step7professionalv11.0sp2”
下载地址:step7professionalv11.0sp2
http://support.automation.siemens.com/cn/view/zh/57185407
请看9.1章节的“使用at覆盖变量”,见图2。
第二种方法,建议使用slice方法。见图3。
在图3中,程序段1中,直接对temp1的位(如#temp1.x0等)做操作,若想对字节操作,可以填写#temp1.b0即可。
关于slice方法的帮助看手册“step7professionalv11.0sp2”
也是看9.1章节的“对变量各位的寻址”。见图4。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值