回复:s7-200 变量存储区问题(modbus通讯)

helenaxiao

  • 帖子

    5
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2011-06-20

普通 普通 如何晋级?

发布于 2013-08-15 16:02:14

8楼

上边的是做块的程序
这部分是主程序
ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1
LD SM0.1
S M17.0, 1
Network 2 // 网络标题
// 网络注释
LD M17.0
CALL SBR0, 9600, 0, 3000, 1, 400101, 400102, 400103, 400101, 400101, 400101, 400101, &VB1000, M13.0, VB300
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=子程序注释
VAR_INPUT
Baud:DWORD;
Parity:BYTE;
Timeout:WORD;
Slave:BYTE;
Addr1:DWORD;
Addr2:DWORD;
Addr3:DWORD;
Addr4:DWORD;
Addr5:DWORD;
Addr6:DWORD;
Addr7:DWORD;
DataPtr:DWORD;
END_VAR
VAR_OUTPUT
Done:BOOL;
Error:BYTE;
END_VAR
VAR
LDone:BOOL;
Done1:BOOL;
Done2:BOOL;
Done3:BOOL;
Done4:BOOL;
Done5:BOOL;
Done6:BOOL;
Done7:BOOL;
Done8:BOOL;
DPr1:DWORD;
First1:BOOL;
First2:BOOL;
First3:BOOL;
First4:BOOL;
First5:BOOL;
First6:BOOL;
First7:BOOL;
First8:BOOL;
END_VAR
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, LD0, LB4, LW5, L42.0, LB41
Network 2
LD SM0.1
S L48.0, 1
Network 3
LD L48.0
= L60.0
LD L43.0
O L42.3
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, LB7, 0, LD8, 1, &VB600, L42.1, LB41
Network 4
LD L42.1
EU
+D 0, LD36
MOVD VD600, *LD36
Network 5
LD L42.1
S L48.1, 1
Network 6
Network 7
LD L48.1
= L60.0
LD L42.1
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, LB7, 0, LD12, 1, &VB604, L42.2, LB41
Network 8
LD L42.2
EU
+D 2, LD36
MOVD VD604, *LD36
S L48.2, 1
Network 9
LD L48.2
= L60.0
LD L42.2
EU
= L63.7
LD L60.0
CALL SBR2, L63.7, LB7, 0, LD16, 1, &VB608, L42.3, LB41
Network 10
LD L42.3
EU
+D 4, LD36
MOVD VD608, *LD36
S L48.4, 1
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK MBUS_CTRL_P1:SBR1
TITLE=本代码归西门子能源与自动化公司专有,它属于附加软件包“modbus 主站端口 1 库”的一部分。
VAR_INPUT
Mode:BOOL; // 1 = modbus, 0 = PPI(终止 modbus
Baud:DWORD; // 1200, 2400 ... 115200
Parity:BYTE; // 0 = 无,1 = 奇校验,2 = 偶校验
Timeout:INT; // 以毫秒表示的从站响应超时
END_VAR
VAR_OUTPUT
Done:BOOL; // 完成标记(始终设置)
Error:BYTE; // 错误状态

END_VAR
VAR
AC0save:DWORD;
AC1save:DWORD;
AC2save:DWORD;
AC3save:DWORD;
END_VAR
BEGIN
Network 1 // 此 POU 受密码保护,不能编辑和查看。

END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK MBUS_MSG_P1:SBR2
TITLE=本代码归西门子能源与自动化公司专有,它属于附加软件包“modbus 主站端口 1 库”的一部分。
VAR_INPUT
First:BOOL; // 新消息(设置为 1 时仅对新请求扫描一次)
Slave:BYTE; // 从站地址(0 到 247)
RW:BYTE; // 读 = 0,写 = 1
Addr:DWORD; // modbus 地址(即 40001)
Count:INT; // 元素个数(1 到 120 个字或 1 到 1920 位)
DataPtr:DWORD; // 数据指针(即 &VB100)
END_VAR
VAR_OUTPUT
Done:BOOL; // 完成标记(0 = 忙,1 = 完成)
Error:BYTE; // 错误(0 = 无错误)

END_VAR
VAR
AC0save:DWORD;
AC1save:DWORD;
AC2save:DWORD;
END_VAR
BEGIN
Network 1 // 此 POU 受密码保护,不能编辑和查看。

END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK MBUSM1_P1:SBR3
TITLE=本代码归西门子能源与自动化公司专有,它属于附加软件包“modbus 主站端口 1 库”的一部分。
VAR_OUTPUT
crc:WORD;
END_VAR
VAR
count:INT;
ptr:DWORD;
END_VAR
BEGIN
Network 1 // 此 POU 受密码保护,不能编辑和查看。

END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=中断程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
END_INTERRUPT_BLOCK
INTERRUPT_BLOCK MBUSM2_P1:INT1
TITLE=本代码归西门子能源与自动化公司专有,它属于附加软件包“modbus 主站端口 1 库”的一部分。
BEGIN
Network 1 // 此 POU 受密码保护,不能编辑和查看。

END_INTERRUPT_BLOCK

第一次不大会,就全贴上来了
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33264条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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