欢迎光临大柏电子科技(上海)有限公司
15721373211
当前位置
首页 > 新闻中心
西门子1500 MOVE指令单次触发
2021/7/8 9:22:33
西门子1500 MOVE指令单次触发

MOVE指令是EN为1就将数值写入到目标地址,那么我打算做每隔1S采集一次的指令,问下怎么操作比较好,我也没找到能做单次脉冲的函数

CPU属性,激活“时钟存储器”

系统和时钟存储器
https://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/smartsms/086.html

精度不高自己用时间继电器做,精度高用中断来做。

参考流量累加吧,比较相类似。

如果用的是经典的STEP 7 V5.X,则参考《编程使用》中的《流量累计》
http://www.ad.siemens.com.cn/productportal/prods/1500published/1500list/prog_list3.html
如果用的是 TIA V1X,则参考
《在STEP 7 (TIA Portal) 中,如何实现流量累积功能?》
https://support.industry.siemens.com/cs/document/48799854

参考S7-300/400的:
详见《如何计算物理流量测量值(如质量流量、流速)的总和?》连接:
http://support.automation.siemens.com/CN/view/zh/23061633
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&objid=23061633&caller=view


几个问题需要搞清楚。
move指令始终执行同一个变量传输到同一个存储区?
如果是,你这个思路可以,只是在调用move指令时用沿触发。做一个定时器,每一个1S周期触发传输一次。
如果是将源数据,按每1S周期传输一个数据到一串连续的地址中,就需要创建如表格指令,或指针偏移地址存储数据方式。
1、
无条件的,可以用系统时钟,比如组态时钟存储器为 MB0 ,则M0.5 就是每一秒一会产生一次高电平,利用 M0.5  的上升沿连接 MOVE 指令的使能,那就一秒1次
https://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/08-Function/03-System_Clock_Memory.html
2、
另外就是用循环中断组织块OB30,定义时长为 1000MS,在循环中断中写这个MOVE,它就会每秒执行一次。
STEP 7 (TIA Portal) 中可以使用哪些组织块?
https://support.industry.siemens.com/cs/document/40654862
3、写一个自振荡的定时器,定时时长 1 秒,每一秒也会产生一个高电平。
定时器
http://www.ad.siemens.com.cn/productportal/prods/1500published/1500list/prog_list6.html
看你喜欢哪一种了。
M0.5默认的1S触发

循环中断组织块
https://support.industry.siemens.com/cs/cn/zh/view/84047890


https://support.industry.siemens.com/cs/cn/zh/view/40654862

联系方式
CONTACT US

电话:13818569113

邮箱:13818569113@139.com

网址:http://www.xmzgk.com

地址:中国上海市青浦区崧盈路398号6栋

用手机扫描二维码关闭