回复:应用探讨——西门子指针编程使用探讨

Ralf Jones

西门子1847工业学习平台

  • 帖子

    406
  • 精华

    3
  • 被关注

    5

论坛等级:侠客

注册时间:2004-03-11

普通 普通 如何晋级?

发布于 2011-12-07 21:23:56

90楼

quote:以下是引用火麒麟在2011-12-07 08:30:18的发言:
quote:以下是引用yiutyi在2011-12-06 08:29:56的发言:
quote:以下是引用火麒麟在2011-12-05 15:39:36的发言:
不知道大家在什么地方用到ANY的多?
我主要用于通讯程序,比如S7通讯或者ModbusTCP从站通讯程序块中,因为有很多系统功能块输入变量都是ANY类型的,程序中处理非常方便。


1.结合UDT来做多数据处理,指针配合UDT可以实现很多方便的功能,比如db块有30个UDT,每个UDT占100个字节,每个UDT中有对应设备的参数和状态,通过指针我可以快速的刷新参数(ar1每次+100),更新状态或者实现设备的动作控制等等。。
2.编写通信协议,比如modbus tcp,串口通信,或者用个md720-3发发短信什么的,用指针非常方便。
3.编写一些算法,循环啊,累计啊,比较啊什么的,没有指针也不是不可以,就是比较累。

yiutyi大侠能具体说说你在ModbusTCP中是如何用ANY的吗?



火麒麟大侠,我写的一部分代码,抛砖引玉...
//START TO MAKE PDU

L 6 //SLAVE ADDRESS(1BYTE)+FUNCTION CODE (1BYTE)+START ADDRESS(2 BYTE )+FORCE VALUE(2BYTE)
T #PDU.SEND_LEN

L 5 //FORCE SINGLE COIL(05)
T #PDU.FUNCTION_CODE

L #ADDR //START ADDRESS
DEC 1
T #PDU.START_ADDR

L P##DATAPTR
LAR1
L W [AR1,P#0.0]
T #DB_NUM
OPN DB [#DB_NUM]
L D [AR1,P#2.0]
LAR1
L B [AR1,P#0.0]
L 0
>I
JCN ZERO
L L#65280 //W#16#FF00==TRUE==L#65280
T #PDU.LEN
JC SEND


ZERO: NOP 0
L 0
T #PDU.LEN //W#16#0000==FALSE
JC SEND
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54778条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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