




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*PLC设计规范说明:1、变量名称: 以字母开头的字母、数字串,长度不超过15个字符 最好用大写字母开头,以免和编译程序冲突 在一个单独的文件variable.cpp中进行集中定义,直接分配 按ANSIC格式进行读写、调用,表达式须符合ARM规范 xxx=000-999(没限制), y=0-7,*=数字、字母串 16位的移位寄存器用Mxxx8表示,不能写成Mxxx0, 在复位时清零Mxxx(Mxxx0不变)和Mxx(x+1)二个字节 Xxxxy: 输入单元, 按位读写, 母变量为Xxxx Yxxxy: 输出单元, 按位读写, 母变量为Yxxx Mxxxy: 辅助单元, 按位读写, 母变量为Mxxx 当在PLC程序中用C语言调用时候,也可以按字节,字双字读写,这根你定义时候的母 变量有关系;在程序中由TranslatePlc.h文件中的VARIABLE_BIG宏确定 Txxx: 定时器, 按位读,按字写 Cxxx: 计数器, 按位读,按字写 BXxxxy:带上升下降自动备份处理的输入单元,一般不用! BYxxxy:带上升下降自动备份处理的输出单元,一般不用! BMxxxy: 带上升下降自动备份处理的辅助单元,由系统自动处理! BTxxx: 定时器变化单元 BCxxx: 计数器变化单元 Bxxx: 计数器专用辅助位变量, 由系统自动处理 K*: 工作数据单元,占1个或2或4个字节D*: 工作数据单元,占1个或2或4个字节,(或特别定义的浮点数处理) *变量名: 对后续的地址变量表达式进行间址处理,单双字节 &变量名: 返回变量的地址,双字节 变量名: 返回变量的值, 单双字节 为抗干扰和防止执行顺序的影响,可在主控循环开始前执行带缓冲的输入 扫描,结束后执行带缓冲的输出控制,中断里的输入、输出一般不进行缓冲2、指令格式: 类似于标准PLC程序 一个程序由若干段小程序按编辑顺序组成,从上往下、从左往右执行 一程序段由若干行程序组成 一行程序由多个逻辑单元(或单个)、一个动作单元组成,在动作单元之 前可加挂多行程序 一个逻辑单元可跟另一个逻辑单元相并或相串组成一个新的逻辑单元 ;: 该行为注释行其后为注释,不予处理 动作单元标准格式: 动作表达式, 表达式不能为空 例子:OUT M000 逻辑单元标准格式: 逻辑表达式, 表达式不能为空 例子:LD X000 3、操作说明: 在下面,S表示当前逻辑状态(子线值)0或1动作单元: OUT 变量: 将S赋给目标单元 PLS 变量: 当S为由0变为1时目标单元置, 否则复0, BMxxxy=S SFTL变量: 当S为1时将16或者32位的移位寄存器左移一位 S或者SET变量: 当S为1时置位目标单元 R或者RST变量: 当S为1时复位目标单元, 对移位寄存器Mxxx8清2个字节 OUT $表达式: 当S为1时计算表达式 OUT 程序标号: 当S为1时转到标号处, 如不带标号则转到下一程序段,即退出程序 OUT #表达式: 当S为1时等待表达式为真,在执行下面程序 逻辑表达式: 变量: 取变量的值, 转换成位值0或1 变量1 变量2: 求表达式的值,转换成位值0或1 母变量Xxxx、Yxxx、Mxxx在表达式中直接为其相应物理单元内的值 Cxxx、Txxx在表达式中直接为其相应物理单元内的值 其它变量如K*,D*,等直接为其相应物理单元内的值 读取: 逻辑单元 返回Xxxxy、Yxxxy、Mxxxy的值(0或1) Cxxx: if BCxxx+1Cxxx | Cxxx=0, then return 1 else return 0 Txxx: if BTxxx+1Txxx | Txxx=0, then return 1 else return 0 当Cxxx、Txxx置为-1时则无论何时读都为0(即使置位时) 当Cxxx、Txxx置为0时则无论何时读都为1(即使复位时) 输出: 动作单元 当S=1时, Xxxxy=1, Yxxxy=1, Mxxxy=1 当S=0时, Xxxxy=0, Yxxxy=0, Mxxxy=0 当S=1时, if BTxxx=-1, then BTxxx=0; 起动计时器 else if M072 & BTxxxTxxx, then +BTxxx; 计时 if Bxxx=0 & BCxxx M00 M01/逻辑表达句LD T000AND!= D000 K000ORBOUT Y000$M77 = 0x11;/C语言语句$jiaoqiang()$LD M846AND M841LD M410ANI Y000ORBAND M831OUT M410$5、编程说明:1文件不正常时报警并停止编译,并且指示出错行数2在扫描源文件时如遇到一行以#END开始则停止处理该文件3以#开头的语句,当作C语言语句注释不处理4以$开头的语句,当作C语言语句直接翻译成机器码程序5以开头的语句,翻译成函数调用6以标号后加:开始的行直接输出, :后的内容不输出7非C语言语句的;后的内容被视为注释内容8一段程序的前、后、中间都可有注释行9一个程序段只有一个入口点,可有多个出口点(主要是节省编译时间)!10一复合单元只有一个入口点,只有一个返回点(主要是节省编译时间)!11允许从一段程序中跳转到另一程序段的起始处(标号处), 但不能跳转到另一子程序内12调用子程序后状态堆栈值不能恢复,因此只能在程序段的最后调用13入口子程序名必须为main,为PLC的IO处理入口,在IO扫描输出后执行,14用于紧急处理,定位在运行起始地址处15函数PCCLOOP()为循环处理程序,定位在运行起始地址+3处,在顺序功能编程时不执行16对同一个变量,/和不能多次使用,因为每次使用后都会变量当前值立即拷贝到 辅助单元从而使得随后的使用会得到结果0, 所以只能通过直接用辅助单元来实现,( 目前程序暂时不支持微分积分指令) 17一段程序最多嵌套8层堆栈18一行程序最长128个字符19变量必须先赋值再引用,否则可能出现闪一下的现象,即变一次才回复正常20以便阅读及编写超长程序行(最长128个字符)逻辑语言基本指令:(用于编写PLC程序) LD 逻辑位单元: 将状态值压入堆栈(必要时),取逻辑单元的值赋给状态值 LD 参数1 参数据2将状态值压入堆栈(必要时),取(参数1参数)的逻辑状态值赋给状态值 LD= 参数1 参数据2. LD 参数1 参数据2将状态值压入堆栈(必要时),取(参数1参数)的逻辑状态值赋(取反)给状态值 LDI= 参数1 参数据2. LDI 参数1 参数据2 AND= 参数1 参数据2 AND 参数1 参数据2 OR= 参数1 参数据2 OR 参数1 参数据2 ORI= 参数1 参数据2 ORI1,0在保持一个扫描周期后M992:100ms时钟周期, 150ms,050ms,只维持一个PCC循环M993:10ms时钟周期, 15ms,05ms, 只维持一个PCC循环7、数据定义说明(目前版本变量说明): M00M99 辅助变量等母变量,共100个,子变量为07,位变量800个; X00X03 输入寄存器母变量,共4个,子变量为07,位变量32个; Y00Y03 输出寄存器母变量,共4个,子变量为07,位变量32个; T000T099 时间继电器,32位,共100个 C000C099 计数器,32位,共99个 K1000K
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研发部门技术创新五年规划
- 注册公用设备工程师常考点试卷审定版附答案详解
- 一年级数学计算题专项练习1000题集锦
- 2025年生态保护修复资金申请项目绩效评价体系构建报告
- 注册公用设备工程师每日一练试卷含答案详解(精练)
- 自考专业(电子商务)题库试题含答案详解(培优B卷)
- 重难点解析冀教版七年级下册期末试题及完整答案详解(全优)
- 环保公司劳动模范评选规章
- 自考专业(人力资源管理)通关考试题库及一套参考答案详解
- 综合解析吉林省龙井市7年级上册期末测试卷综合训练练习题(含答案详解)
- 【词汇】311个四级核心高频词汇
- 加油站防洪应急预案
- 《舞台灯光知识培训》课件
- 中建动臂塔吊爬升方案
- 2024年成人高考成考(专升本)艺术概论试卷与参考答案
- 个人信访材料模板范文
- 解读国有企业管理人员处分条例(2024)课件(全文)
- DL∕T 1870-2018 电力系统网源协调技术规范
- 创新创业基础-理论、案例与训练(大学生创新创业教育课程)全套教学课件
- 小学语文四年级下册语文修改病句60题练习及答案
- 肺部体格检查
评论
0/150
提交评论