
硬件部分介绍
为了将自动化控制引入到各行各业,北京维制通电子公司专门开发了P111G通用多功能可编程控制器。它功能强大,适用于各种工控场合,凡是有电子技术基础的人,在两个小时之内就可掌握编程并应用自如地使用。
一、P111G可编程控制器特点如下:
1. P111G由主机(P111G-M)、仪表(P111G-B)和扩展单元(P111G-K)组成,见图1。主机为小型塑料机箱标准结构,可直接固定在卡道上。仪表采用专用仪表机箱结构,四位数码管可当显示用,仪表同时又是编程板,一台仪表就可对任意台主机编程。仪表上有六个按键,编程时作输入键,运行时可用做手动控制键。扩展单元外型与主机相同,在主机输入输出口不够用的情况下,用于输入输出口的扩展。
2.主机由交流220V直接供电,有6路继电器输出(可通过220V/1A电流)、7路开关量输入(12V电平)、2路0-5V模拟量输入、1路12V/200mA 直流稳压电源输出。各输入输出口全部隔离,采取各种措施抗干扰,可直接应用与环境复杂的工业现场控制。
3.主机带有RS232-9 串行通讯口,同计算机通讯形成功能更强大的工控系统,该口还可用于主机与扩展单元之间、多台主机之间的扩展和连网之用。
4.主机中有10个定时器、10个计数器、100个随机存储器、100个E2ROM存储器供用户使用。
5.用户存储器可存800条用户程序,并可反复修改10万次以上,在掉电下可保存40年以上。
7.共有8类50条高效指令,编程时无须与主计算机相连,现场随编随用,有单步运行模式,方便调试。
8.所有输入输出端均有发光二极管指示。
图1、P111G—M二、P111G-M 主机
见图2,其外部尺寸为9.5cm×9cm×7.5cm。
图2、P111G—M外部端子示意图
说明:
P0—P5为6个继电器输出端;
P6—P8为3个12V开关量输入端,COM1是这三个输入端的公共地端;
P9—PC为4个12V开关量输入端,COM2是这四个输入端的公共地端;
A00、A01是两路0—5V模拟量输入端,COM3这两个端的公共端,该端在内部与12V地相接;
RST为系统复位端,它由12V触发;
K1为用户存储器读写开关,“1”位——用户存储器可读可写,“2”位——用户存储器只能读不能写。
三、P111G-B 仪表
见图3,仪表的开口尺寸:123mm ╳ 73mm 仪表的深度:18mm
图3、P111G—B仪表示意图
仪表在程序运行时可做显示用,在编程时用法如下:
(一)、进入编程模式
1.将仪表引线插头插入主机上“仪表接口”上。
2.将仪表上的“编程/运行开关”拨向“1”位置,“单步调试开关”拨向“2”位置,主机上的“K1”拨向“1”
位置。
3.接通主机交流220V电源,此时,主机进入编程模式,显示第一步程序的指令的第一字节内容。
(二)、修改指令内容
1.细分修改指令内容——按“+”键或“—”键就可选择当前显示的指令的内容,“+”键是按照正顺序选择,“—”
键是按照逆顺序选择。
2.快速按类修改指令内容——按“S”键+“↑”键(或“↓”键)就可实现快速类选择。
注:一般应先用“快速按类选择”选到所需的指令类,然后再用“+”、“—”键进行细选。
(三)、改变显示内容
1.按“↑”键或“↓”键可实现上下翻页显示。当按“↑”键时,显示上一步指令的第一字节内容。当按“↓”
键时,显示当前指令的下一字节内容(如果当前指令是多字节),或显示下一步指令的第一字节内容(如果当前指令是单字节)。
2.按“>>”键可实现快速下翻页显示,每按一次该键显示内容下跳10步。
(四)、插入或删除指令
1.按“S”键(不松)再按“+”键就会在当前指令前插入一条指令,此后可用“+”、“—”键将其修改成所需的指令内容。插入一条指令的时间约40秒,这当中显示“。。”。
2.按“S”键(不松)再按“—”键就会将当前指令删除。删除一条指令的时间约40秒,这当中显示“。。”。(五)、程序的校验
当程序编完后一定要校验,否则无法调试和运行。
1.按“S”键(不松)再按“>>”键就开始校验。
2.如校验无错显示。
3.如显示说明用户程序最后没有编程结束指令,应加上,然后再校验。
4.如显示“0程序顺序号”说明在调子程序时忘记输入与之对应的子程序标号或输入的有错误,改正后再校验。例:出错信息“0152”该出错信息说明第152条指令(肯定是调用子程序指令L00-L99)无与之对应的子程序标号(H00-H99)。
5.如显示程序顺序号,该出错信息说明在子程序中无返回指令,改正后再校验。
例:出错信息该出错信息说明第765步指令(肯定是子程序标号指令H00-H99)无返回指令。
6.如显示程序顺序号,该出错信息说明该条指令有语法错误,改正后再校验。
例:出错信息该出错信息说明第4步指令有语法错误。
(六)、程序的调试
校验完后才可进行调试。
1.将仪表上的“编程/运行开关”放到“2”位置,“单步调试开关”放到“1”位置,复位后就可进入调试模式。
此时显示第一步程序的指令的第一字节内容。
2.每按一次“↓”键程序运行一步,显示器又显示下一步要运行程序的指令内容。
3.在单步调试过程中只要按“>>”键就开始自动单步调试运行,即:程序每隔一秒自动运行一步。在自动单步调试运行过程中只要按“S”键就停止自动单步调试运行,进入单步调试运行状态。
(七)、程序的全速运行
1.仪表上的“编程/运行开关”放到“2”位置,“单步调试开关”放到“2”位置,上电或复位后就进入全速运行模式。
2.如用户程序中没用到把内存(F00-F99)内容存储到EEPROM(E00-E99)指令,建议将主机上K1放到“2”
位置。
(八)、复位
共有三种方法复位:1、通过仪表上的“RST”键可复位;2、将主机上的“12V+”与主机上的“RST”端相接可复位;3、上电可复位。
(九)、程序的上载
按“S”键和“>>”键(不松)在5秒钟内按“↑”键就开使上载(将主机中的用户程序拷贝到仪表中储存)。
上载过程显示等待信息“。。”,如检验有错则显示出错信息,如全部上载完且检验正确则显示
并闪亮。上载全过程约需40秒。
(十)、程序的下载
按“S”键和“>>”键(不松)在5秒钟内按“↓”键就开使下载(将仪表中程序拷贝到主机中的存储器)。下
载过程显示等待信息,如检验有错则显示出错信息,如全部下载完且检验正确则显示
并闪亮。下载全过程约需40秒。
四、P111G—K扩展单元(外型与主机相同)
1、P111G-K1(十三路继电器输出)外部端子如图4所示。
图4、P111G—K1扩展单元外部端子示意图
说明:PK0—PK12是十三路继电器输出端,每一端在220V交流电压下可驱动1A电流的阻性负载。串行通讯口与主机的串行通讯口相连。
2、P111G-K2(六路继电器输出、十二路开关量输入)外部端子如图5所示。
图5、P111G—K2扩展单元外部端子示意图
说明:
PK0—PK5为六个继电器输出端;
PK6—PK17为十二路开关量输入端(12V触发),COM是端的公共地端;
12V+端是12V/200mA电源正输出端,COM是负输出端。
五、P111G 输入/输出端口结构介绍
1.开关量输入端结构(以P6为例,见图6)
由图6可知,当在P6端不加信号时,反向触器在“R”的作用下使输入端拉为低电平,因此,输出端(内P6)为高电平。当在P6端加12V信号时,反向触发器输入端为高电平,则输出端(内P6)为低电平。由于反向触发器的输入、输出部分在电气上是相互隔离的,从而有效的阻止了外部干扰信号通过输入通道进入P111G-M中。
图6、P111G开关量输入端内部结构图
2.模拟量输入端结构(以A00为例,见图7)
由图7可知,模拟电压信号的正端加在A00 端上,负端加在 COM3 端上。特别注意,所加的模拟电压信号的最高值(峰值)不能超过5V,否则将损坏隔离放大器。由于采用了输入、输出相互隔离的放大器,从而有效的阻止了外部干扰信号通过模拟通道进入P111G-M中。
图7、P111G模拟量输入端内部结构图
3.输出端结构(以P0为例,见图8)
由图8可知,当执行指令后,“内P0”端为低电平,“反向驱动器”输出高电平,继电器“J0”工作,
触点闭合。当执行指令后,“内P0”端为高电平,“反向驱动器”输出低电平,继电器“J0”不工作,触点断开。在应用中要特别注意触点电流的大小,在驱动阻性负载(如灯)时,触点最大承受电流在220V交流电压下为1A。在驱动感性负载(如电磁铁、电动机、大功率接触器)时触点最大承受电流要大打折扣(一般至少打50%的折扣)。提倡用P111G-M控制中间继电器,再由中间继电器控制目标接触器的方案。
图8、P111G输出端内部结构图指令系统介绍
(一)指令中各种符号的含义
1.每条指令起始用符号。指令长度有:1字节指令、 2字节指令、3字节指令、4字节指令、 5字节指令. 2.KKK--上跳步数,其范围由000步到255步。以指令的第一条计算步数而指令中间的内容不计算步数,即:每条指令只算一步。
3.NNN--下跳步数,其范围由000步到255步。以指令的第一条计算步数而指令中间的内容不计算步数,即:每条指令只算一步。
4.SSS—十进制数值(000-255)。
5.r—输出/输入端口位数(0-F)。
6. --右移符号。
7. --左移符号。
8.--大于符号。
9.--等于符号。
10.--输入符号。
11.--内存共计100个。
12. --模拟输入口(ADC)共8个。
13.--模拟输出口(DAC)共2个。
14.--掉电可保持内存(EEPROM)共100个。
15.--开关量输入/输出端口共计16个,其中--为继电器输出端口,--为12V输入端口。16.子程序返回。
17.--调用子程序共100个。
18.--子程序标号共100个。
19.-- 计数器共计10个,每个计数范围000-255。
20.--定时器共计10个,每个定时范围0.1秒-60秒。
21.上跳,范围 0步--354步。
22.下跳。范围 0步--354步。
23.显示。
24.编程结束指令。
25.串行通讯26.
26.系统复位。
(二)指令集
一.传送及输入输出指令
1.模拟输入口(A00-A07)的值传送给内存(目前只有 A00、A01有效)
例:将A00口的值传给内存F09
—F09
A00
2.将内存中的值传送给模拟输出口(该指令暂无效)
例:定时器13.输出口清0,此时继电器接通
例:使P3口继电器接通
—P30
4. 输出口置1,此时继电器断开
例:使P3口继电器断开
—P31
5.Pr 输出口值取反
例:—P40 (P4口输出0)
—P4∩ (P4口输出取反,由0变1)
6.将十进制数值传送给内存
例:将十进制数125传送给F94
—F94
125
7.将EEPROM 存储器的内容传送给内存
例:将E16内容传送给F38
—F38
E16
8.将内存的值传送给 EEPROM 存储器(使用该指令时应将主机面板上的”K1”开关放在”1”的位置)
例:将F38内容传送给E16
—E16
F38
9.将定时器的内容传送给内存
的内容传送给内存F09
—F09
C1
10.计数器的内容传送给内存
例:将计数器4的内容传送给F43
—F43
]4
11.将内存的内容传送给计数器
—]6
F88
12.将数值传送给计数器
例:将十进制数25传给计数器6
—]6
025
000
000
13.将内存的内容右移一次(循环)
例:—├
F22
(如原F22中值为33,对应二进制=00100001,执行该指令后F22中值为90,对应二进制=10010000)
14.将内存的内容左移一次(循环)
例:—┤
F22
(如原F22中值为33,对应二进制=00100001,执行该指令后F22中值为66,对应二进制=01000010)
15.Pr口连带内存的内容右移一次(不循环)
例:—├ P0
F22
(原F22值为33,对应二进制=00100001,P0口的值为0,执行该指令后F22中值为16,对应二进制=00010000)
16.Pr口连带内存的内容左移一次(不循环),内存的最低位补 0
(此处缺图)
例1:—┤P5
F22
(如原F22值为153,对应二进制=10011001,P5口的值为0,执行该指令后,F22中值为50,对应二进制=00110010,
P5口的值由0变为1)
例2:—┤P1
F22 (如原F22中值为33,对应二进制=00100001,P1口的值为1,执行该指令后F22中值为66,对应二进制=01000010,
P1口的值由1改为0)
17.Pr口连带多个内存的内容右移一次(不循环),内存由F00-F09可选择。
注: FF0 为Pr口→F00→
FF1 为Pr口→F00→F01→
FF2 为Pr口→F00→F01→F02→
依此类推:FF9 为Pr口→F00→F01→F02→F03→ (09)
例: —├ P7
FF2
(原F00=001,F001=002,F002=006 P7口的值为1,执行该指令后F00=002,F001=004,F002=012 P7口的值为0)18.Pr口连带多个内存的内容左移一次(循环),内存的范围由F00-F09可选择。
例: —┤P7
FF2
(原F00=001,F001=002,F002=006 P7口的值为1,执行该指令后F00=002,F001=004,F002=012, P7口的值为0)二.显示指令
1.显示内存内容
例: —F09 (将十进制数178送入内存F09)
178 —d00 (显示器显示F09内容“178”)
F09
2.在个位显示字符
例:在个位显示字符“5”
—d01
5
3.在十位显示字符
例:在十位显示字符“9”
—d02
9
4.在百位显示字符
例:在百位显示字符“6”
—d03
6
如内存内容为000、5.在千位显示字符
例:在千位显示字符“-”
—d04
-
6.在个位显示内存内容
说明:如内存内容为000、001、002、003、004、005、006、007、008、009、010、011、012、013、014、
015、 则与之对应在个位显示0、1、2、3、4、5、6、7、8、9、A 、b 、C 、d 、E 、F ,如内存内容大于015则在个位不显示任何字符。
例1: —F40 (给F40赋值6)
006
—d01 (在个位显示“6”)
F40
例2: —F00 (给F00赋值16)
016
—d01 (此命令在个位将无任何显示)
F00
7.在十位显示内存内容
说明:如内存内容为000、001、002、003、004、005、006、007、008、009、010、011、012、013、014、
015、 则与之对应在十位显示0、1、2、3、4、5、6、7、8、9、A 、b 、C 、d 、E 、F ,如内存内容大于015则在十位不显示任何字符。
例1: —F10 (给F10赋值13)
013
—d02 (在十位显示“d ”)
F10
例2: —F20 (给F20赋值125)
125
—d02 (此命令在十位无任何显示)
F20
8.在百位显示内存内容
说明:如内存内容为000、001、002、003、004、005、006、007、008、009、010、011、012、013、014、
015、 则与之对应在百位显示0、1、2、3、4、5、6、7、8、9、A 、b 、C 、d 、E 、F ,如内存内容大于015则在百位不显示任何字符。
9.在千位显示内存内容
说明:001、002、003、004、005、006、007、008、009、010、011、012、013、014、
015、 则与之对应在千位显示0、1、2、3、4、5、6、7、8、9、A 、b 、C 、d 、E 、F ,如内存内容大于015则在千位不显示任何字符。
1.如上内存=下内存内容就执行下条指令,否则上跳KKK步或下跳NNN步。
说明:KKK=000,NNN=000 自循环
KKK=000,NNN≠000 下跳NNN步
KKK≠000,NNN=000 上跳KKK步
KKK≠000,NNN≠000 上跳KKK步
例:如F12=F99就执行下一条指令,否则下跳168步
—F12
=
F99
000
168
2.如内存内容=数值(SSS)就执行下条指令,否则上跳KKK步或下跳NNN步。
说明:同上。
例:如F34=8就执行下一条指令,否则上跳1步
—F34
=
008
001
000
3.如上内存>下内存内容就执行下一条指令,否则上跳KKK步或下跳NNN步。
说明:同上。
例:如内存F12的值大于内存F99的值就执行下一条指令,否则下跳9步—F12
]
F99
000
009
4.如内存内容>十进制数值SSS就执行下一条指令,否则上跳KKK步或下跳NNN步
说明:同上。
例:如F12大于51,就执行下一条指令,否则下跳100步
—F12
]
051
000
100
5.激活定时器并开始定时,如定时时间到设定值,就执行下一条指令同时定时器清0,否则上跳KKK步或下跳NNN 步。
-
说明:同上。
例:如定时器3延时到1秒,就执行下条指令,否则自循环
—C3
001
000
000
6.如Pr口输入为1(Pr口接地或断开)就执行下一条指令,否则(Pr口接12V)就上跳KKK步或下跳NNN步
说明:同上。
例:如PA口输入高电平,就执行下条指令,否则自循环
—□PA
000
000
7.如计数器计到设定值就执行下一条指令,否则上跳KKK步或下跳NNN步。
说明:同上。
例:如计数器5计数到15,就执行下条指令,否则上跳4步
—]5
015 004
000
四.跳转及调用指令
1.上跳
说明:KKK=000,上跳(00-99)步
KKK≠000,上跳 KKK+(00-99)步
例1:上跳78步
—└ 78
000
例2:上跳208步
—└ 99
109
2.下跳
说明:KKK=000,下跳(00-99)步
KKK≠000,下跳 KKK+(00-99)步
例:下跳78步
—┌ 78
000
3.调用子程序
说明:L 中的数值表示要调用的子程序标号
4.子程序标号
说明:1、H 指令必须在子程序的第一条
2、H 指令中的数值必须和L指令中的一样
5.子程序返回
说明:1、该指令一定在子程序的最后一条。
2、该指令使程序返回到与该子程序对应的 L 指令的下一条处继续运行。
3、每一个子程序的最后都有该指令。
4、子程序中不能再有子程序。
例:—H09 (09号子程序开始)
.
. (子程序内容)
.
—└┘(子程序返回)
五.定时器计数器指令
1.计数器清零
例:计数器4清0
—]40
2.计数器加1
例:计数器4加1
—]41
3.计数器减1
例:计数器9减1
—]92
4.关定时器并清零
例:定时器8关闭并清0
—C805.设定定时器时钟
说明:A—设定时器时钟为60秒
B—设定时器时钟为1秒
C—设定时器时钟为0.1秒
默认值为B
例:设定定时器时钟位60秒,即:定时器一个数代表60秒
—C0
A
六.串行通讯指令
通讯格式为: 1个起始位,8个数据位,1个奇/偶校验位,1个停止位
1.串行接收指令 (通过串行通讯口接收数据并进行奇/偶校验然后将数据传送给内存)
说明:1、中的00-99所确定波特率见表1
2、如接收的数据中1的个数为奇数,就上跳KKK步或下跳NNN步,否则执行下一步指令。
3、KKK=000且NNN=0,不进行奇/偶校验
例1: 以波特率1.2K的速度接收,无奇/偶校验, 将接收的数据存入 F02 中,然后执行下一步指令—F02
48
000
000
例2: 以波特率2.4K的速度接收, 将接收的数据存入 F67 中,如接收的数据中“1”的个数为奇数就下跳56步,如为偶数就执行下一步指令
—F67
74
000
056
2.串行发射指令(将内存的内容通过串行通讯口发送出去)
说明:中的00-99所确定波特率见表1
例:以波特率4.8K的速度将 F32 中的数据通过串口发送出去
例:—87
F32
七.复位指令
说明:该指令使设备重新初始化,然后从第一步开使运行。
八.编程结束指令
说明:用户程序的最后一条必需有该指令,该指令只是表示“编程结束”,并不表示“程序运行到此结束”。(三).备注
1.波特率计算表
2.快速选择指令字顺序表
3.指令执行时间(粗略) 单字节指令:0.3ms 双字节指令:0.5ms
三、四字节指令:0.6ms 五字节指令:0.8ms
