西门子6ES7314-6CH04-0AB0产品信息

供应商
浔之漫智控技术-西门子PLC代理商
认证
企业认证实名实力商家
报价
请来电询价
品牌
西门子
产品规格
模块式
产地
德国
关键词
西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商
联系电话
15221406036
手机号
15221406036
微信号
15221406036
邮箱
3064686604@qq.com
经理
聂航
所在地
上海市松江区广富林路4855弄星月大业领地88号3楼
更新时间
2026-05-28 07:10

1引言
     可编程控制器(PLC)作为继电控制盘的替代物,以极高的可靠性和应用方便等特点,成为当今用途为广泛的工业控制器。现在它的应用已突破了当初逻辑控制的场合,深入到过程控制、位置控制、网络通讯等工程领域。本文根据某工程的实际需要,以三菱PLC为模拟目标,提出了一种以单片机构建PLC系统的思想

2系统构成
系统框图见图1。


      该系统CPU芯片使用了一种新型的51系列单片机即Cygnal公司的C8051F040。其指令集与MSC_51指令集完全兼容,使用方便,且采用流水线结构,其周期由标准的12个系统时钟周期降为1个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。内部集成了64KFlashROM、4352字RAM、64位数据I/O口以及几乎所有的模拟与数字外设如:ADC、DAC、SMBus、UART、CAN、SPI、PCA、电压比较器、温度传感器、可编程增益放大器等。开发工具采用标准的JTAG接口,以边界扫描方式对CPU进行非入侵式全速的在系统调试。其性能较之传统51单片机有了很大的提高。
     CPU和外部I/O接口之间采用光电耦合器件,实行强电和弱电隔离,切断现场干扰。计算机通过RS232串口与PLC系统通信,将PLC程序指令传送到PLC。PLC将接收到的指令保存到非易失性RAM中。这样做即可以长期保存PLC程序,又可以方便地随时修改程序。

3PLC程序的执行过程
常见PLC以扫描方式工作。每次扫描的工作过程分为三步。
(1) 输入处理程序执行前,PLC将全部输入点的状态读到输入镜像寄存器。在程序执行过程中,PLC不再读取这些输入点的状态,直到下一个扫描周期的输入处理。
(2) 程序处理PLC根据读入的外部输入状态和其它元件的状态执行用户程序。这时的输出指令只写到输出镜像寄存器,输出点的状态并没有发生变化。
(3) 输出处理 全部指令执行完毕,将输出寄存器的内容全部刷新到外部输出点。程序回到步工作过程。
本PLC系统的工作过程与此相同。输入处理和输出处理用单片机实现起来比较容易,无需赘述。系统的关键是用户程序的处理。下面以三菱FX系列PLC一个简单的例子来说明本PLC系统对用户程序的处理方法。梯形图和相应的指令表见图2。


0:LD X000 9: LD X010
1:AND X001 10:LD X011
2:AND X002 11:AND X012
3:LD X003 12:LD X013
4:OR X004 13:AND X014
5:ANB 14:ORB
6:OUT Y000 15:OR X015
7:OR X006 16:ANB
8:LD X010 17:OUT Y001
      首先分析指令 ANDX001,指令执行前有状态B,执行该指令时,将当前状态B 和X001的状态进行与运算,形成状态C,这是指令ANDX002执行前状态。C是B的刷新值,它们实际上是一个变量。这个变量反映程序执行时当前的状态值。当遇到输出指令OUTY000时,就把当前状态值传送给输出寄存器。把ANDX001作为一单元块,可认为这个单元块有单输入单输出的结构。输入状态和单元块内元件的状态运算后得到输出状态。
      再分析指令LD X003、ORX004,如果将这两条指令组合后看作上述单输入单输出结构的单元块,执行前的状态为D,把X003、X004元件并联后的状态作为单元块内元件的状态,和D与运算后得到状态G.。但细化一步执行LDX003这个子单元块时,当前状态D需保存,取X003的状态作为当前状态值E,和X004或运算后得到F。执行ANB时,把先保存的状态值D和状态值F与运算后得到新的当前状态值G。
     这里执行LD与AND产生区别是在于:AND指令没有分支,而LD指令产生分支,程序执行前的状态值需要保存。同样,在遇到分支合并时,需要使用到先前保存的状态值。根据梯形图的编写规则,状态值的保存和使用是一种先进后出的结构,所以可以使用进栈和出栈的方法来实现。指令的具体实现过程归纳如下:凡是遇到产生分支的指令,例如LD指令,需将当前状态值进栈保存,取当前操作元件的状态作为当前状态值;凡是遇到分支合并的指令,例如ORB、ANB指令,需将栈顶值出栈与当前状态值运算成为新的当前状态值。
      在具体实现时,采用了另一种形式的栈。由于三菱FX系列PLC的LD连续使用不能超过八次,因此采用一个可以位寻址的片内RAM字节作为栈空间来存放当前状态值。如果使用栈空间的高位作为当前状态值,每次压栈就把该字节进行不带进位的循环右移,出栈时反之。在LDX000指令执行后,进栈状态A没有出栈,LDX010指令又进栈保存当前状态值,以前的压栈值A废之不用,即每条与母线相连的LD指令产生压栈值都不出栈。这样避免了因使用PUSHPOP指令用一个字节的空间来保存一位的当前状态值造成的RAM利用效率低的问题。
LD X010后的指令执行过程如下:LD X010 把当前状态值H压栈,取X010的状态作为当前状态值I;LDX011把当前状态值I压栈,取X011的状态作为当前状态值J;AND X012把当前状态值J和X012的状态与运算后得到当前状态值K;LD X013把当前状态值K压栈,取X013的状态作为当前状态值L;ANDX014把当前状态值L和X014的状态与运算后得到当前状态值M;ORB 弹出压栈值K和当前状态值M或运算后得到新的当前状态值M;ORX015把当前状态值M和X015的状态或运算后得到当前状态值N;ANB弹出压栈值I和当前状态值N与运算后得到新的当前状态值O;OUTY002 把当前状态值写到Y002的输出镜像寄存器。

4检查程序
     接收到程序后,在程序执行之前,还需对程序的语法正确性进行检查。这里只介绍与程序状态值栈相关指令的语法检查。
     首先]需要设置一个位标志EN_BUS和一计数器LD_N。ENBUS表示下一指令能够与PLC梯形图中的母线相连。计数器LD_N表示自与母线相连的指令之后由于LD指令引起的堆栈次数。检查程序之前,初始化如下:
EN _BUS=1
LD_N=1
     检查程序时,如果遇到LD指令,程序流程如图3(a);如果为ORB或ANB指令,则LD_N=LD_N-1;如果为OUT等与零母线相连的输出指令,程序流程如图3(b)。
      这些基本操作执行后,如果检测到LD_N大于8,说明连续LD指令太多,程序状态值栈空间溢出;如果LD_N等于0,说明ANB或ORB指令数多于与LD指令,数量不匹配。还有些指令例如程序标号P、循环范围终止符NEXT等必须与母线相连。如果这些指令出现在EN_BUS=0的情况下,说明该程序有错。


西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商
浔之漫智控技术-西门子PLC代理商已认证
统一社会信用代码
91310117MA1J3R698D
成立日期
2019年09月10日
法定代表人
袁宜男
注册资本
500

主营产品

西门子PLC模块,变频器,触摸屏,交换机

经营范围

从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务,工业自动化设备安装,工业自动化控制设备、电气设备、机申设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售,商务信息咨询,软件开发,建筑装修装饰建设工程专业施工,建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。

公司简介

本公司销售的一律为原装正品,假一罚十,可签正规的产品购销合同,可开增值税发票,税点另外算,24小时销售热线:15221406036 本公司销售的一律为原装正品假一罚十可签正规的产品购销合同可开增值税发票税点另外算24小时销售热线15221406036 西门子触摸屏代理商,西门子一级代理商,西门子中国授权总代理 ----浔之漫智控技术(上海)有限公司   本公司专业经销合信/CO-TRUST科思创西门子PLC;S7-200S7-300 S...

查看公司详情
我们其他产品
我们的新闻
微信咨询
拨打电话