?? plc51x_fnc.lst
字號:
129 // //
130 // FNC 指令編程格式描述 //
131 // //
132 // 函數名稱: FNC_xxx //
133 // 函數類型: void FNC_xxx(void) //
134 // //
135 // 功能描述: 執行 FNC 擴展命令 //
136 // //
137 // 入口參數: 無 //
138 // //
139 // 出口參數: 無 //
140 // //
141 // 全局變量: addr0 (addr0x.WORD ) // 數據位第一字地址/數據緩沖區 //
142 // addr0L (addr0x.BYTES.BYTEL ) // 數據位第一字地址/數據低位 //
143 // addr0H (addr0x.BYTES.BYTEH ) // 數據位第一字地址/數據高位 //
144 // addr1 (addr1x.WORD ) // 數據位第二字地址緩沖區 //
145 // addr1L (addr1x.BYTES.BYTEL ) // 數據位第二字地址低位 //
146 // addr1H (addr1x.BYTES.BYTEH ) // 數據位第二字地址高位 //
147 // addr2 (addr2x.WORD ) // 數據位第三字地址緩沖區 //
148 // addr2L (addr2x.BYTES.BYTEL ) // 數據位第三字地址低位 //
149 // addr2H (addr2x.BYTES.BYTEH ) // 數據位第三字地址高位 //
150 // addr3 (addr3x.WORD ) // 數據位第四字地址緩沖區 //
151 // addr3L (addr3x.BYTES.BYTEL ) // 數據位第四字地址低位 //
152 // addr3H (addr3x.BYTES.BYTEH ) // 數據位第四字地址高位 //
153 // addr4 (addr4x.WORD ) // 數據位第五字地址緩沖區 //
154 // addr4L (addr4x.BYTES.BYTEL ) // 數據位第五字地址低位 //
155 // addr4H (addr4x.BYTES.BYTEH ) // 數據位第五字地址高位 //
156 // //
157 // //
158 //-----------------------------------------------------------------------------------------//
159 // 調用模塊: void RD_ADDR(int a, unsigned char c) //
160 // //
161 // 注 釋: 從 PLC 指定的點地址讀入數據 //
162 // //
163 // 入口參數: int a 點地址 //
164 // unsigned char c 地址格式 m=(c&0xe0)>>4, n=(c&0x1f); //
165 // //
166 // 出口參數: int 讀入的數據 //
167 //-----------------------------------------------------------------------------------------//
168 // 調用模塊: void WR_ADDR(int a, int b, unsigned char c) //
169 // //
170 // 注 釋: 將數據寫入 PLC 指定的點地址 //
171 // //
172 // 入口參數: int a 點地址 //
173 // int b 寫入的數據 //
174 // unsigned char c 地址格式 m=(c&0xe0)>>4, n=(c&0x1f); //
175 // //
176 // 出口參數: 無 //
177 //-----------------------------------------------------------------------------------------//
178 // //
179 // 模塊描述: //
C51 COMPILER V8.16 PLC51X_FNC 10/10/2009 14:43:38 PAGE 4
180 // //
181 // //
182 // 作 者: 許意義 //
183 // 日 期: 2009年9月26日 //
184 // 備 注: //
185 //-----------------------------------------------------------------------------------------//
186 // 修 改 人: //
187 // 日 期: //
188 // 備 注: //
189 //-----------------------------------------------------------------------------------------//
190
191 #include "SYSTEM.h"
192 #include "REG_MPC82G516.H"
193 #include "PLC51x_TYPE.H"
194 #include "PLC51x_SYS.H"
195 #include "PLC51x.H"
196 #include "PLC51x_FNC.H"
197
198 /******************************************************************************************************/
199
200 code (*key_list[16])();
201 code (*key_list_1[12][2])();
202 code (*key_list_2[14][2])();
203 code (*key_list_3[256])();
204 int RD_ADDR(unsigned int a, unsigned char c);
205
206 #define CSP_Pn_MAX 8
207 #define CALL_SP_MAX 2
208 volatile unsigned char CALL_SP_i;
209 volatile unsigned char code *CALL_SP[CALL_SP_MAX];
210 volatile unsigned char code *CSP_Pn[CSP_Pn_MAX+1];
211
212 volatile bit CODE_ERROR;
213 volatile unsigned int data PS_BIT; // P 指令16級暫存
214 volatile unsigned int data PS1_BIT; // P 指令16級暫存備份
215 volatile unsigned int data Pi; // P 指令16級暫存位置指針
216
217 /******************************************** 程序開始 **********************************************/
218
219 //-----------------------------------------------------------------------------------------//
220 // 數組名稱: BYTE_BIT //
221 // 數組類型: unsigned char code BYTE_BIT[8] //
222 // //
223 // 功能描述: BYTE 字節型 BIT 位表 //
224 // //
225 // 入口參數: BIT 位編號 //
226 // //
227 // 出口參數: 返回 BYTE 字節中 BIT 屏蔽位 //
228 // //
229 // //
230 // 作 者: 許意義 //
231 // 日 期: 2009年10月2日 //
232 // 備 注: //
233 //-----------------------------------------------------------------------------------------//
234 // 修 改 人: //
235 // 日 期: //
236 // 備 注: //
237 //-----------------------------------------------------------------------------------------//
238
239 unsigned char code BYTE_BIT_s[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
240 unsigned char code BYTE_BIT_w[8]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};
241 unsigned char code BYTE_BIT_e[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
C51 COMPILER V8.16 PLC51X_FNC 10/10/2009 14:43:38 PAGE 5
242
243 //-----------------------------------------------------------------------------------------//
244 // 數組名稱: FNC_CMD_LNE //
245 // 數組類型: unsigned char code FNC_CMD_LNE[256] //
246 // //
247 // 功能描述: 返回單條 FNC指令后面跟隨的命令/數據字長度 //
248 // //
249 // 入口參數: FNC指令代碼編號 //
250 // //
251 // 出口參數: 返回本條 FNC指令后面跟隨的命令/數據字長度 //
252 // //
253 // //
254 // 作 者: 許意義 //
255 // 日 期: 2009年9月26日 //
256 // 備 注: //
257 //-----------------------------------------------------------------------------------------//
258 // 修 改 人: //
259 // 日 期: //
260 // 備 注: //
261 //-----------------------------------------------------------------------------------------//
262
263 unsigned char code FNC_CMD_LNE[256]={
264 1,1,0,0,0,0,0,0,1,0,
265 3,4,2,5,2,3,3,2,2,2,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -