利用嵌入式PLC芯片组进行产品设计的步骤.docx
- 文档编号:23914516
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:14
- 大小:21.18KB
利用嵌入式PLC芯片组进行产品设计的步骤.docx
《利用嵌入式PLC芯片组进行产品设计的步骤.docx》由会员分享,可在线阅读,更多相关《利用嵌入式PLC芯片组进行产品设计的步骤.docx(14页珍藏版)》请在冰豆网上搜索。
利用嵌入式PLC芯片组进行产品设计的步骤
采用嵌入式PLC芯片组进行产品设计的步骤
一、在科威公司网站资料下载栏目下载以下资料:
1、嵌入式PLC芯片组EASYCORE1.00说明书
2、嵌入式PLC芯片组原理及应用教程
3、C8051F040/020/120中文/英文数据手册
4、PLC梯形图编程软件
二、认真阅读上述1、2、3项资料
三、芯片组功能说明:
芯片组已加载科威公司嵌入式PLCEASYV1.409(或以上版本)内核,可完成梯型语言功能、RS232/485通讯、CAN通讯、用户嵌入程序接口功能。
1、DI/DO口:
P1、P2、P3、P4.0—P4.3、P0.4—P0.7共32个IO,可实现PLC开关量输入输出任意配置,高速计数,高速输出,外部中断,SPI总线,SMBUS总线等功能,端口配置方法参见《C8051F040/020/120中文/英文数据手册》。
2、AI/AO口:
4路12位AD和2路12位DA,分别为AD0(AIN0.0)、AD1(AIN0.1)、AD2(AIN0.2)、AD3(AIN0.3)、DAC0、DAC1,功能同C8051F040/020/120。
3、串口0已加载科威公司嵌入式PLC编程口通讯协仪,可实现用户嵌入程序下载、梯型图下载和监控功能;
串口1已加载科威公司嵌入式PLC RS232/485网络互连协仪,可实现下载CAN网络配置内容、与计算机或其它设备进行RS232/485网络互连;
CAN接口已加载科威公司嵌入式PLCCAN应用层协仪,通过科威公司CANSET软件进行简单设置,就可实现CAN网络互连。
4、PRO(P4.5):
用户嵌入程序下载使能端,0有效。
5、RUN/SET(P4.4):
梯形图程序下载使能端,1有效。
6、用户嵌入程序可使用那些内部资源及如何使用
a、通用寄存器组R0—R7(可直接使用,不需指定哪一组),不可用于中断及0.5mS周期扫描程序中。
b、(EC/EP/HP)20H—23H单元,(HM)20H—21H单元,为内部RAM,可位寻址。
c、(EC/EP/HP)58H—67H单元,(HM)58H—5FH单元为内部RAM。
d、外部RAM单元:
(EC/EP)3600H—3FFFH;(HP)2D00H—3FFFH;(HM)2D00H—3BFFH。
e、内核程序状态位(位寻址):
KEY_SET:
梯形图运行时为0,下载时为1。
PLC_PRO_ERR:
梯形图正确时为0,梯形图错误或第一次下载梯图之前为1。
f、公共运算区(30H—4FH):
单元定义参见EASYCORE.INC/HP120.INC/HPMOVE120.INC,公共运算区不可用于中断及0.5mS周期扫描程序中。
g、PLC资源区:
单元定义参见EASYCORE.INC/HP120.INC/HPMOVE120.INC
h、32个系统函数:
函数说明参见EASYCORE.INC/HP120.INC/HPMOVE120.INC函数库和梯形图函数,系统函数不可用于中断及0.5mS周期扫描程序中。
i、用户中断:
参见《嵌入式PLC原理及应用》第七章第五节。
四、深入分析研究你所设计的产品要实现的功能,再结合芯片组的性能特点,设计出相应的硬件电路,设计时需注意芯片组的IO口、两个串口、CAN接口电平均为3.3V,输入加缓冲,输出加驱动,而且尽可能靠近芯片组引脚,AD、DA的输入/输出电压范围参见《C8051F040、020、120中文/英文数据手册》,模拟电路电源和数字电路电源分开供电且在单点共地,串口0在内核程序中已配置为OC输出,用户设计硬件时应将TX0(P0.0)脚对3.3V接上拉电阻。
五、用KEILC51软件编写用户嵌入驱动程序
参见《嵌入式PLC原理及应用》第七章第五节。
1、用户I/O口配置程序:
根据设计的输入输出功能配置相应的端口,用户不可配置的I/O口资源为P4.4、P4.5、P4.6、P4.7、P5、P6、P7及UART0。
内核程序中已对串口1和CAN口(有CAN时)配置,内核中串口1配置为OC输出,当需要SPI功能或配置串口1为电平输出方式时,必须对串口1重新配置,此程序在内核重新上电后调用一次。
2、用户上电初始化程序:
用户嵌入程序中用到的输入输出变量,中间变量,指针变量,位变量等以及IO、AD、DA,定时、计数,SPI,SMBUS,高速计数,高速输出,外部中断等外设功能在重新上电后必需进行初始化处理,此程序在内核重新上电后调用一次。
3、用户运行初始化程序:
内核重新上电后第一次运行梯型图或内核从下载梯型图状态进入梯型图运行状态时调用此程序一次,此程序必须使用户嵌入程序中用到的变量及CPU(C8051F040/020/120)外设处于所需要的状态。
4、用户设置初始化程序:
内核重新上电后进入梯型图下载状态或内核从梯型图运型状态进入梯型图下载状态时调用此程序一次,此程序必须使用户嵌入程序中用到的CPU(C8051F040/020/120)外设处于所需要的状态。
5、用户每步执行程序:
梯形图每执行一步,即调用此程序一次。
需要快速执行的事件可在此程序或用户中断程序中完成,内核周期性地调用此程序,周期小于50US。
6、用户0.5mS定时运行程序:
需要定时采样的流程可放在此程序中完成,但该段程序代码执行时间必须小于50US。
数据处理程序不宜放在此段程序中执行。
7、用户演算周期扫描程序:
所有梯形图执行完后,即调用该程序,调用周期为梯型图演算周期,一般的数据处理、开关量输入/输出的刷新及代码执行时间较长的程序均放在此程序中执行。
六、用户嵌入程序编写完后,需对程序进行反复检查,确认正确无误后,方能进行链接、编译并最终生成HEX文件。
七、用科威公司提供的DOWNHEX.EXE软件下载用户嵌入程序。
具体方法参见《嵌入式PLC原理及应用》第七章第一节,注意下载嵌入程序之前必须使能PRO端口,下载完成后,PRO端口应失效。
八、利用靶机初步验证用户嵌入程序的正确性,例如可察看输入/输出指示灯及状态指示灯等。
九、安装梯形图编程软件,写梯形图程序,利用串口0下载用户梯形图,下载梯形图之前必须使能RUN/SET端口,下载完成后,RUN/SET应失效。
一十、运行梯形图并进行监控,当所有输入、输出状态(其中包括IO状态、AD、计数器等映射的单元值、DA输出等)正确后,嵌入式PLC产品的功能设计完成。
一十一、用嵌入式PLC芯片组进行产品设计的例程
1、科威公司开关量14点PLC(8入6出)设计方法:
参见EASY-M0806R设计例程。
(内核为1.03版本)
2、科威公司16路模拟量输入PLC设计方法:
参见EASY-A1600O设计例程。
(内核为1.03版本)
十二、内核版本说明
芯片组正面标签已写明内核版本号,也可以通过梯型图软件监控D8255内容确认内核版本号。
D8255=1030时内核为1.03版本,D8255=1080时内核为1.08版本。
1.08版本比1.03版本在串口1功能上增加了自由协仪通讯功能。
现在的版本为D8255=31409,即1.409版本。
和以前的版本相比,1.409版本主要增加了外部输入中断、定时中断和计数中断三种中断功能,同时,优化和调整了PLC的通信功能。
现有的PLC设计都是基于内核1.4版本以上,具体说明如下:
PLC_INT_FLAG0:
中断入口标志位,一个字节
D0D1D2D3D4D5D6D7
D0:
X0外部事件中断的中断标志位。
当D0为1时,将进入外部中断I000/I001的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D1:
X1外部事件中断的中断标志位。
当D1为1时,将进入外部中断I100/I101的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D2:
X2外部事件中断的中断标志位。
当D2为1时,将进入外部中断I200/I201的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D3:
X3外部事件中断的中断标志位。
当D3为1时,将进入外部中断I300/I301的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D4:
X4外部事件中断的中断标志位。
当D4为1时,将进入外部中断I400/I401的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D5:
X5外部事件中断的中断标志位。
当D5为1时,将进入外部中断I500/I501的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D6:
T0定时中断的中断标志位。
当D6为1时,将进入定时中断I6的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
此功能已包含在内核中,无需另写驱动。
D7:
T1定时中断的中断标志位。
当D7为1时,将进入定时中断I7的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
此功能已包含在内核中,无需另写驱动。
PLC_INT_FLAG1:
中断入口标志位,一个字节
D0D1D2D3D4D5D6D7
D0:
T2定时中断的中断标志位。
当D0为1时,将进入定时中断I8的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
此功能已包含在内核中,无需另写驱动。
D1:
C1计数中断的中断标志位。
当D1为1时,将进入计数中断I010的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D2:
C2计数中断的中断标志位。
当D2为1时,将进入计数中断I020的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D3:
C3计数中断的中断标志位。
当D3为1时,将进入计数中断I030的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D4:
C4计数中断的中断标志位。
当D4为1时,将进入计数中断I040的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D5:
C5计数中断的中断标志位。
当D5为1时,将进入计数中断I050的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D6:
C6计数中断的中断标志位。
当D6为1时,将进入计数中断I060的处理子程序;为0时,没有中断发生。
此标志位内核程序会自动清0。
D7:
保留。
RAM_INT_XFLAG:
输入中断的边沿状态标志位,一个字节
D0-D5对应外部输入端口X0-X5。
梯形图上外部事件的中断编号(即上升沿中断/下降沿中断的设置位)会被内核程序自动读取到RAM_INT_XFLAG。
可使用RAM_INT_XFLAG及PLC_INT_FLAG0进行驱动程序的编写。
串口自由协议修改:
检测发送/接收间隙时间,产生间隙超时中断
<@D8127+1>*.5MS到中断X5
用于MODBUS时序
A>.主站只发不收@D8127
主站发送间隙时间>=从站<接收间隙+报文处理+初始化>时间
定<发送+间隙>时间发送
B>.主站发送/接收
主站发送间隙时间尽可能大@D8127=255
主站发送自动转接收
主站接收间隙时间>从站接收间隙时间
从站接收间隙时间
@D8127=154800bps8ms
=79600bps4ms
=514400bps3ms
=319200bps2ms
=257600bps1.5ms
=1115200bps1ms
从站发送间隙时间>=4字节传输时间
外部事件中断输入端口X5被串口1(UART1)占有。
附:
TMS的时长由2.5ms改成了0.5ms,编程时要注意。
十三、系统函数说明
1.系统函数改为32个
增加FUN21=调梯形图函数
2.增加指令为:
功能号助记符驱动函数号功能
34SFTR64位右移
35SFTL65位左移
50REF66输入输出刷新
53HSCS67比较置位(高速计数器)
54HSCR68比较复位(高速计数器)
55HSZ69区间复位(高速计数器)
56SPD70脉冲密度
57PLSY71脉冲输出
58PWM72脉冲调制
59PLSR73带加减速的脉冲输出
(1)SFTR位右移<16>
D8200=64
D8201=待移入位元件物理地址
D8202=待移入位元件位掩码(H)
D8203=移位桶位元件物理地址
D8204=移位桶位元件位掩码(H)
D8205=移位桶位长度(1--1023)
D8206=待移入位长度(1--1023)@D8026<=@D8025
(2)SFTR位左移<16>
D8200=65
D8201=待移入位元件物理地址
D8202=待移入位元件位掩码(H)
D8203=移位桶位元件物理地址
D8204=移位桶位元件位掩码(H)
D8205=移位桶位长度(1--1023)
D8206=待移入位长度(1--1023)@D8026<=@D8025
(3)REF输入输出刷新指令<16>
D8200=66
D8201=X/Y物理地址
D8202=X/Y位掩码(H)
D8203=刷新元件数(0-256)
(4)DHSCS高速计数比较置位<32>
D8200=67/FF00H+67
D8201=比较数(D8021、D8022)
D8203=高速计数物理地址
D8204=X/Y物理地址
D8205=X/Y位掩码(H)+00H(L)
*D8205.L=0FFH时D8024.L=I*2(中断编号*2,如I010,D8024.L=20=14H)
(5)DHSCR高速计数比较复位<32>
D8200=68/FF00H+68
D8201=比较数(D8021、D8022)
D8203=高速计数物理地址
D8204=X/Y物理地址
D8205=X/Y位掩码(H)+00H(L)
*D8205.L=0FFH时D8024.L=I*2
(6)DHSZ高速计数比较<32>
D8200=69/FF00H+69
D8201=比较数1(D8021、D8022)
D8203=比较数2(D8023、D8024)
D8205=高速计数物理地址
D8206=X/Y物理地址
D8207=X/Y位掩码(H)+00H(L)
*D8207.L=0FFH时D8026.L=I*2
(7)SPD测速<16>
D8200=70/FF00H+70
D8201=X/Y物理地址
D8202=X/Y位掩码(H)+00H(L)
D8203=时间宽度(ms)
D8204=字元件物理地址
(8)PLSY脉冲输出<16>
D8200=71/FF00H+71
D8201=频率(Hz)
D8202=脉冲量
D8203=X/Y物理地址(Y0?
)
D8204=X/Y位掩码(H)+00H(L)
(9)PWM脉冲调制<16>
D8200=72/FF00H+72
D8201=脉宽(ms)
D8202=周期(ms)
D8203=X/Y物理地址
D8204=X/Y位掩码(H)+00H(L)
(10)DPLSR带加减速的脉冲输出<32>
D8200=73/FF00H+73
D8201=最高频率(Hz)
D8203=脉冲量
D8205=加减速时间(ms)
D8207=X/Y物理地址
D8208=X/Y位掩码(H)+00H(L)
十四、系统资源占用说明
EC、EP资源占用:
;=====================CPU寄存器组(00H-1FH)==============
;
;0区00H-07H主程序使用
;1区08H-0FH编程口(高优先级中断)使用
;2区10H-17H串口1(高优先级中断)使用
;3区18H-1FHCANBUS(低优先级中断)使用
;**3区可被用户嵌入时(低优先级中断)重复使用**
;
;=====================CPU寄存器组(00H-1FH)==============
;=================BRAM用户使用区EC/EP/HP(23H-20H)==================
BRAM_USEREQU20H;4BYTES
;HM(20H-21H);1BYTE
;=================DRAM用户使用区EC/EP/HP(58H_67H)===================
DRAM_USEREQU58H;16BYTES
;HM的DRAM_USER可使用8个字节,从58H-5FH
;=================XRAM用户使用区EC/EP(3600H-3FFFH)================
XRAM_USEREQU3600H;4096-1536BYTES=2560BYTES
;HPXRAM_USER都从2D00H开始(2D00H-3FFFH)4864BYTES
;HMXRAM_USER都从2D00H开始(2D00H-3FFFH)3840BYTES
;================用户程序使能位=============================
;--------USERPROENABLE-----------
PLC_BIT_REGEQU28H;运算位中间变量
;47H-40H
FS0_FLAGEQUPLC_BIT_REG.7
FS1_FLAGEQUPLC_BIT_REG.6
FS2_FLAGEQUPLC_BIT_REG.5
FS3_FLAGEQUPLC_BIT_REG.4
KEY_SETEQU3BH
KEY_PROEQU3AH
PLC_PRO_ERREQU3DH
PLC_PRO_ENDEQU3CH
;================公共运算区(30H-4FH)
;公共运算区不可用于:
1>.系统软定时TMS
;2>.用户中断
M0EQU30H
M1EQU31H
M2EQU32H
M3EQU33H
M4EQU34H
M5EQU35H
M6EQU36H
M7EQU37H
M8EQU38H
M9EQU39H
M10EQU3AH
M11EQU3BH
M12EQU3CH
M13EQU3DH
M14EQU3EH
M15EQU3FH
FLOAT_M1EQU40H;
FLOAT_M2EQU44H
FLOAT_M3EQU48H
FLOAT_M4EQU4CH
W_R0EQU50H
W_R1EQU51H
W_R2EQU52H
W_R3EQU53H
W_R4EQU54H
W_R5EQU55H
W_R6EQU56H
W_R7EQU57H
W_DATAEQU75H;运算目的指针
PLC_INT_FLAG0EQU70H
PLC_INT_FLAG1EQU71H
;====================PLC资源区(0000_5080H)
;>>>>>>>>>>>>>>>>>位变量区(0000-05FFH)<<<<<<<<<<<<<<<<<<
RAM_PMEQU0000H;M0000-M1535
RAM_PYEQU0180H;Y0000-Y0177
RAM_PM8EQU01C0H;M8000-M8255
RAM_PCSEQU01E0H;CS000-CS255计数器触点
RAM_PTSEQU0200H;TS000-TS255定时器触点
RAM_PXEQU0240H;X0000-X0177
RAM_PSEQU0280H;S0000-S0999
RAM_PCCEQU04E0H;CC000-CC255计数器线圈
RAM_PTCEQU0500H;TC000-TC255定时器线圈
;>>>>>>>>>>>>>>>>>位变量区(0000-05FFH)<<<<<<<<<<<<<<<<<<
;>>>>>>>>>>>>>>>>>字变量区(0A00-7FFFH)<<<<<<<<<<<<<<<<<<
;
RAM_PCNEQU0A00H;C0000-C0199
(2)
RAM_PCN1EQU0C00H;C0200-C0255(4)
;L,H=
(2)
(2)--D0D1(D1为高字)
RAM_PD8EQU0E00H;D8200-D8255
RAM_PTNEQU1000H;T0000-T0255
RAM_PDEQU4000H;D0000-D7999
RAM_INT_XFLAGEQU2D4EH
;>>>>>>>>>>>>>>>>>字变量区(0000-7FFFH)<<<<<<<<<<<<<<<<<<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 嵌入式 PLC 芯片组 进行 产品设计 步骤
![提示](https://static.bdocx.com/images/bang_tan.gif)