回复:程序中的P指针的数值转换

'Razor

西门子1847工业学习平台

  • 帖子

    3342
  • 精华

    42
  • 被关注

    224

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2017-03-18 10:20:42

2楼

L       D(AR1,P#0.0)  //编译能过吗?


//使用软件:STEP7 Professional 2010 SR4

//源文件

// OB1调用FC1,FC1中为修改后的代码。


FUNCTION "Addr_xxxxO_to_xxxxH" : VOID

TITLE =

//下面程序是将PIW256转换为W#16#100;

VERSION : 0.1



VAR_INPUT

  In_DRV : POINTER ;

END_VAR

VAR_OUTPUT

  ST_DRV : WORD ;

END_VAR

BEGIN

NETWORK

TITLE =




      L     P##In_DRV; //   P##In_DRV =PIW256

      LAR1  ; 

      L     1; 

      SLD   4; //  10000

      +AR1  ; //   PIW272

      L     D [AR1,P#0.0]; //正确格式

      SRD   3; 

      T     #ST_DRV; 



NETWORK

TITLE =





END_FUNCTION


ORGANIZATION_BLOCK OB 1

TITLE = "Main Program Sweep (Cycle)"

VERSION : 0.1



VAR_TEMP

  OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)

  OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)

  OB1_PRIORITY : BYTE ; //Priority of OB Execution

  OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)

  OB1_RESERVED_1 : BYTE ; //Reserved for system

  OB1_RESERVED_2 : BYTE ; //Reserved for system

  OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds)

  OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)

  OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)

  OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started

END_VAR

BEGIN

NETWORK

TITLE =


      CALL "Addr_xxxxO_to_xxxxH" (  //调用FC1

           In_DRV                   := PIW  256,

           ST_DRV                   := MW     0);


END_ORGANIZATION_BLOCK





少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54706条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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