从S7-300-400到S7-1500看变址寻址的改变.pdf

从S7-300-400到S7-1500看变址寻址的改变.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

从S7-300_400到S7-1500看变址寻址的改变

首先,不能使用UCFC[XX]等程序块调用的指令,因为给出的应用是相同程序块

的多次调用;其次是在程序块的接口参数中不能定以TIMER类型,例如控制对象使用FC

编写,FC的接口参数如图3所示。

图3

使用OB1调用赋值时,只能赋值常数而不能是变量,如图4所示。

图4

所以FC的接口参数只能是INT类型变量,由于接口参数不能存储16指针,还必须通

过temp临时变量进行中转,在FC中的编写的程序如图5所示。

图5

FC中的程序非常简单,如果输入TRIG1为1,使能定时器T[#T1_TEMP1]10秒定时,

定时器T[#T1_TEMP1]为1,然后将结果传送到输出OUT1,10秒后计时停止,OUT1

复位,等于TRIG1为1后,OUT1产生一个10秒的脉冲,相同程序,TRIG2为1后,

OUT2产生一个5秒的脉冲。

然后调用该FC,参考图6。使用LOOP指令生成20次循环调用,每次使用的定时器号

加1,这样FC的第一个定时器使用范围T1~T20,第二个定时器T100~T120。触发位和

输出位使用了32位指针,为了显示方便,在程序中被屏蔽。

图6

程序编写的总体感觉:对所用指令都非常熟悉的情况下,花费时间大概1个多小时,而且

程序结果不清晰。如果不是后续还有类似的应用,直接调用FC二十遍反而更容易。这也

是大多数工程师没有体验到的,要么没有遇到,要么次数少就直接调用了,我见到最多调

用过一百多编的,并且接口参数还比较多,真是累眼睛呀。

基于对象的编程方式,一个对象使用FB进行控制比较方便。如果将上面的FC换为FB会

怎么样呢?大家都知道调用FB块需要生成实例数据块,循环调用就不行了,不能只用一

个实例数据块,所以只能使用UC或者CC调用,结果就是既没有接口参数也不生成实例

数据块,只能使用全局变量进行数据交换,这样还使用什么FB块呀!总之就是繁琐。

1.2存储器16位地址指针-S7-1500的处理方式

如果使用上面的编程方式,在S7-1500中也可以实现,主要是移植的考虑。如果重新编

程肯定有更简单的方式。S7-1500中批量的处理都使用数组的方式,S7-300/400中使用

的定时器(T)和计数器(C)由于在S7-1500不能作为数组中的数据元素,所以就不推

荐使用了,取而代之的是IEC定时器和IEC计数器,它们可以在数据块中直接定义,参考

图7。

图7

FC作为辅助功能,例如数据转换、控制对象调用前的预处理或者调用后的后期处理,也不

支持批量调用,通常批量处理的是控制对象,控制对象使用FB编写,所以FB支持批量调

用,可以作为数组的数据元素,参考图8。

图8

还是上面的应用,使用S7-1500,编写就变得非常简单,首先创建一个FB块,编写相关

的控制程序,参考图9。

图9

然后在一个FB块中方循环调用该FB块,示例程序参考图10。

图10

可以看到使用S7-1500处理程序块的批量调用非常简单,并且数组的使用与编程语言无

关。

文档评论(0)

聚好信息咨询 + 关注
官方认证
服务提供商

本公司能够提供如下服务:办公文档整理、试卷、文档转换。

认证主体鹤壁市淇滨区聚好信息咨询服务部
IP属地河南
统一社会信用代码/组织机构代码
92410611MA40H8BL0Q

1亿VIP精品文档

相关文档