关于西门子12001500PLC的一些编程技巧
下面是XXX工程师的感受分享,可以作为参考!
1、 指令分为单扫描周期指令和多扫描周期指令。对于多扫描周期指令,如果EN或者REQ只使能一个扫描周期,该指令不能成功执行;例如大多数的通信指令;
2、 FB块的输入输出形参存储于背景数据块中,在调用该FB时实参可选;而FC块的输入输出是临时内存,必须指定实参才能运行;
3、 FB块的输入输出虽不是静态变量,但亦有保持功能,具体视程序而定;
4、 注意变量被多次赋值时的先后顺序!因为变量的值总会被最后执行动作更新,前面的值将被覆盖;例如下图:
程序初衷为当接受响应完成时ERR置位,或响应超时ERR置位。上述程序是可以完成正常功能的;但若二者互换,如下图:
接收超时时,ERR不会置位,因为rev_done为0,ERR被复位!
5、 STEP 7中的梯形图操作数、能流的监控特征色(蓝绿)、以及监控表中的布尔变量的刷新频率有限,可能不能反映真实的实时运行状况,可借助一个累加器来监视程序的运行状态;例如下图:
6、 单个扫描周期中,一个布尔变量的上升/下降沿只能读取一次;因为读取一次之后,其Pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化;
7、 数组访问越界将导致CPU错误,ERR灯闪烁;
8、 单扫描周期指令的循环操作是在单扫描周期完成的;
9、 多使用宏定义,可使程序易读、方便修改;
10、 关于能流:(1)能流流经某个具备EN和ENO的指令,并不一定代表该指令功能执行完成,只代表该扫描周期扫描完成;(2)算数运算、bool变量操作等单扫描周期指令的ENO输出代表该指令执行完成。
11、 FB/FC的EN端将为能流提供扫描通道,EN端断路,能流无扫描通路,内部变量将不再刷新,即该函数不再执行;当FB/FC的EN端总是使能,Enable输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新;请注意二者区别;例见下图:
前者FB12内部的变量总会被扫描,而后者在M3.0或DB_Valve.done为1时,内部变量不会被扫描;相应的,前者done变量将被下一扫描周期置0,而后者done置1后将因能流不通不能扫描而自行保持;
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
如何获取更多 电气热门资料?
操作指引如下!
威纶通软件功能22 一篇文章让你学会简单的威纶通宏指令操作
前言
宏指令的作用
宏指令提供了应用程序之外所需的附加功能。在HMI人机界面运行时,宏指令可以自动的执行这些命令。它可以担负执行譬如数据运算,传送等
宏指令脚本语言
是威纶通自己的语言,类似于C语言
如何实现一个简单的宏指令?
第一步:确定变量类型
第二步:编写脚本语句
第三步:宏指令触发条件
举例:触摸屏上连接了PLC A和PLC B,想将PLC A的某个位信号传送给PLC B的某个位地址?我们详细来阐述
步骤一 确定变量类型
常见的变量类型有:
bool 布尔型 对应位
short 整数型 对应单字
int 整数型 对应双字
float 浮点型 对应小数
此案例中,传送位信号,选定变量类型bool
步骤二 编写脚本语句
此案例中,想将PLC A的某个位信号传送给PLC B的某个位地址,先使用Getdata函数获取PLC A的位信号,再使用Setdata函数传送给PLC B的某个位地址,编写脚本如下:
这里推荐不是很熟悉脚本格式的朋友,使用编辑界面左下角的"函数"选项
推荐理由:通过"函数"选项调用后,主要选择下图中圈示的几个地方,格式自动生成,利于编译通过。
步骤三 宏指令执行条件
方法1.编辑界面就有个周期执行选项
方法2.功能键触发宏指令 每单击这个功能键时,选择的宏指令就会被执行一次
方法3. 使用 [位状态设定] 元件或者 [位状态切换开关] 元件,当这个元件被执行时,选择的宏指令就会被执行一次。
方法4.开机的时候执行1次宏指令
方法5.PLC的某个位 实现触发宏指令
方法6.宏指令一直执行
方法7. 在 [窗口设定] 设定宏的执行时机
[开启窗口时执行]:当开启此窗口时即执行指定的宏指令一次。
[循环执行]:当开启此窗口时,即每0.5秒循环执行指定的宏指令。
[关闭窗口时执行]:当离开此窗口时即执行指定的宏指令一次。
说明:如果您的程序中此项灰阶,代表此型号不支持此功能。
总结:通过以上三步,就可以实现三菱PLC的M10的位状态可以传给欧姆龙PLC的D_bit,200。
常见问题释疑
①问:宏指令定义了short,运算后,数据异常?
答:宏指令中默认的是有符号的短整,所以上限是32767;那么,数据大于此值的话,变量需要定义unsigned short。
②问:宏指令编译通不过?
答:自己写的脚本,PLC名称和设备列表中不一致,参考本文推荐的"函数"选项 。
③问:Getdata,Setdata和GetdataEX,SetdataEX的区别?
答:前者需要等到下位机回复才会继续往下执行;后者不会 。
相关问答
什么是触摸屏与PLC通讯的宏指令编程?
触摸屏与PLC通讯的宏指令编程是一种编程方式,通过在PLC中编写一些宏指令,实现PLC与触摸屏之间的通讯。这样可以实现人机交互,控制工业自动化生产单元的运行和...
西门子840D系统,宏程序怎么用?
制CPU...840D是西门子公司20世纪90年代推出的高性能数控系统。它保持西门子前两代系统SINUMERIK?880和840C的三CPU结构:人机通信CPU(MMC-CPU)、数字控制CPU(N...
威纶通宏命令是什么语言?
威纶通宏命令是一种基于Windows操作系统的脚本语言,通常用于自动化控制和管理计算机系统。该语言可以通过编写脚本程序来实现批量处理、文件管理、网络通信等...
新代ez3t支持宏程序吗?
不支持宏程序。因为新代EZ3T是一款普通的烤箱控制器,按照其说明书上的介绍,没有提到可以支持宏程序。宏程序是一种较为高级的程序设置方式,需要相应的硬件和软...
三菱FB宏类型和子程序类型的区别?
三菱FB宏类型和子程序类型主要区别在于调用方式和使用范围。FB宏类型是功能块的宏定义,可以像一般指令一样在程序内直接调用,不需要在程序中单独写调用语句;而...
现代楼宇自控需要哪些编程?
每家的控制器都有自己的编程方法和编程软件,都是自己做的,并且,大部分都用宏将复杂的逻辑编成块,只要懂得楼宇自控原理,都可以很快上手,技术难度照PLC差远...
各位看官,请解答一下!!台达触摸屏宏指令?,有了解长沙台达...
[回答]选项-设置模块参数-控制命令,为“画面编号”分配控制区,如图所示然后通过宏向画面编号分配地址传送数据,这里可以使用按钮或者下拉列表(把按...
台达PLC方便指令MODRW指令对RTU485的位读写?
1、台达的PLC不支持位的读写2、不知道你的远程RTU能不能编程,台达MODBUS通讯的只能字操作,不能位操作,如果可以编程,转换一下就可以3、和第2个问题差不多,既...
维纶屏读取PLC局部变量方法?
用宏指令可以可读取。用宏指令可以可读取。
powermill命令是什么语言?
PowerMILL是英国DelcamPlc公司出品的数控加工编程软件系统,提供完善的加工策略,快速产生加工路径,并对数控加工进行完整的干涉检查。宏是PowerMILL软件的语...