|
Hi Florian,
That’s the right place to discuss errors related to OpenPLC.
Thanks,
Thiago Alves Sent from my iPhone Send Beremiz-devel mailing list submissions to [hidden email]To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/beremiz-develor, via email, send a message with subject or body 'help' to [hidden email]You can reach the person managing the list at [hidden email]When replying, please edit your Subject line so it is more specificthan "Re: Contents of Beremiz-devel digest..."Today's Topics: 1. exceptions.TypeError (Florian)----------------------------------------------------------------------Message: 1Date: Tue, 28 Apr 2020 19:21:21 +0200From: Florian <[hidden email]>To: [hidden email]Subject: [Beremiz-devel] exceptions.TypeErrorMessage-ID: <[hidden email]>Content-Type: text/plain; charset="utf-8"; Format="flowed"Hello,I contact you as it's mention on thewindow bug below from OpenPLC Editor 1.0. Since this morning i can't generate my program, OpenPLC immediately stop. I've try under Windows and this is the same.I join you the bug report file, i hope you can help.Good luckFlorian From France-------------- next part --------------An HTML attachment was scrubbed...-------------- next part --------------A non-text attachment was scrubbed...Name: kacdafmjihploijj.pngType: image/pngSize: 55181 bytesDesc: not available-------------- next part --------------app-title:beremizapp-version:1.0cwd:/home/florian/T?l?chargements/OpenPLC_Editor/editordate:Tue Apr 28 18:49:18 2020e-type:<type 'exceptions.TypeError'>e-value:sequence item 3826: expected string or Unicode, NoneType foundlocals: item: ('END_CONFIGURATION\n', ()) self: <ProjectController.ProjectController object at 0x7f3dc73dad10> errors: [] filepath: '/home/florian/CloudStation/Projets/Programmes/ArrosageAuto/build/generated_plc.st' warnings: []platform:Linux-4.15.0-96-generic-x86_64-with-Ubuntu-18.04-bionicpython-version:2.7.17self: POUVariablesCollector: <plcopen.POUVariablesCollector.POUVariablesCollector object at 0x7f3dc73f6850> debug_status: 'Stopped' BaseParams: <Element BaseParams at 0x7f3dc6126350> DefaultBuildPath: '/home/florian/CloudStation/Projets/Programmes/ArrosageAuto/build' InstancesPathCollector: <plcopen.InstancesPathCollector.InstancesPathCollector object at 0x7f3dc788b450> _VariablesList: None StatusTimer: <wx._misc.Timer; proxy of <Swig Object of type 'wxPyTimer *' at 0x55e985590c70> > Libraries: [<POULibrary.SimplePOULibrary object at 0x7f3dc6050290>, <py_ext.py_ext.PythonLibrary object at 0x7f3dc6031cd0>] CTNParams: (u'BeremizRoot', <Element BeremizRoot at 0x7f3dc608dfb0>) ProjectBuffer: <PLCControler.UndoBuffer object at 0x7f3dc60f9410> AppFrame: <BeremizIDE.Beremiz; proxy of <Swig Object of type 'wxFrame *' at 0x55e984d0c470> > InstanceTagnameCollector: <plcopen.InstanceTagnameCollector.InstanceTagnameCollector object at 0x7f3dc73f6b50> DebugTicks: [] DebugValuesBuffers: [] TotalTypes: [{'list': [{'comment': 'The SR bistable is a latch where the Set dominates.', 'inputs': [('S1', u'BOOL', 'none'), ('R', u'BOOL', 'none')], 'name': 'SR', 'outputs': [('Q1', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:S1, BOOL:R) => (BOOL:Q1)', 'type': 'functionBlock'}, {'comment': 'The RS bistable is a latch where the Reset dominates.', 'inputs': [('S', u'BOOL', 'none'), ('R1', u'BOOL', 'none')], 'name': 'RS', 'outputs': [('Q1', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:S, BOOL:R1) => (BOOL:Q1)', 'type': 'functionBlock'}, {'comment': 'The semaphore provides a mechanism to allow software elements mutually exclusive access to certain resources.', 'inputs': [('CLAIM', u'BOOL', 'none'), ('RELEASE', u'BOOL', 'none')], 'name': 'SEMA', 'outputs': [('BUSY', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLAIM, BOOL:RELEASE) => (BOOL:BUSY)', 'type': 'functionBlock'}, {'comment': 'The output produces a single pulse when a rising edge is detected.', 'inputs': [('CLK', u'BOOL', 'none')], 'name': 'R_TRIG', 'outputs': [('Q', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLK) => (BOOL:Q)', 'type': 'functionBlock'}, {'comment': 'The output produces a single pulse when a falling edge is detected.', 'inputs': [('CLK', u'BOOL', 'none')], 'name': 'F_TRIG', 'outputs': [('Q', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLK) => (BOOL:Q)', 'type': 'functionBlock'}, {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTU', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'INT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, INT:PV) => (BOOL:Q, INT:CV)', 'type': 'functionBlock'}, {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTU_DINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'DINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, DINT:PV) => (BOOL:Q, DINT:CV)', 'type': 'functionBlock'}, {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTU_LINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'LINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, LINT:PV) => (BOOL:Q, LINT:CV)', 'type': 'functionBlock'}, {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTU_UDINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'UDINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, UDINT:PV) => (BOOL:Q, UDINT:CV)', 'type': 'functionBlock'}, {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTU_ULINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'ULINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, ULINT:PV) => (BOOL:Q, ULINT:CV)', 'type': 'functionBlock'}, {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTD', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'INT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, INT:PV) => (BOOL:Q, INT:CV)', 'type': 'functionBlock'}, {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTD_DINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'DINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, DINT:PV) => (BOOL:Q, DINT:CV)', 'type': 'functionBlock'}, {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTD_LINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'LINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, LINT:PV) => (BOOL:Q, LINT:CV)', 'type': 'functionBlock'}, {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTD_UDINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'UDINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, UDINT:PV) => (BOOL:Q, UDINT:CV)', 'type': 'functionBlock'}, {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTD_ULINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'ULINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, ULINT:PV) => (BOOL:Q, ULINT:CV)', 'type': 'functionBlock'}, {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTUD', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'INT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, INT:PV) => (BOOL:QU, BOOL:QD, INT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'}, {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTUD_DINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'DINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, DINT:PV) => (BOOL:QU, BOOL:QD, DINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'}, {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTUD_LINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'LINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, LINT:PV) => (BOOL:QU, BOOL:QD, LINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'}, {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTUD_UDINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'UDINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, UDINT:PV) => (BOOL:QU, BOOL:QD, UDINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'}, {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTUD_ULINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'ULINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, ULINT:PV) => (BOOL:QU, BOOL:QD, ULINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'}, {'comment': 'The pulse timer can be used to generate output pulses of a given time duration.', 'inputs': [('IN', u'BOOL', 'none'), ('PT', u'TIME', 'none')], 'name': 'TP', 'outputs': [('Q', u'BOOL', 'none'), ('ET', u'TIME', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)', 'type': 'functionBlock'}, {'comment': 'The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true.', 'inputs': [('IN', u'BOOL', 'none'), ('PT', u'TIME', 'none')], 'name': 'TON', 'outputs': [('Q', u'BOOL', 'none'), ('ET', u'TIME', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)', 'type': 'functionBlock'}, {'comment': 'The off-delay timer can be used to delay setting an output false, for fixed period after input goes false.', 'inputs': [('IN', u'BOOL', 'none'), ('PT', u'TIME', 'none')], 'name': 'TOF', 'outputs': [('Q', u'BOOL', 'none'), ('ET', u'TIME', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)', 'type': 'functionBlock'}], 'name': 'Standard function blocks'}, {'list': [{'comment': 'The real time clock has many uses including time stamping, setting dates and times of day in batch reports, in alarm messages and so on.', 'inputs': [('IN', u'BOOL', 'none'), ('PDT', u'DT', 'none')], 'name': 'RTC', 'outputs': [('Q', u'BOOL', 'none'), ('CDT', u'DT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, DT:PDT) => (BOOL:Q, DT:CDT)', 'type': 'functionBlock'}, {'comment': 'The integral function block integrates the value of input XIN over time.', 'inputs': [('RUN', u'BOOL', 'none'), ('R1', u'BOOL', 'none'), (' MandatoryParams: None ChangesToSave: False DebugToken: None ProgramOffset: 0 CTNParent: None _connector: None _Ticktime: 0 TracedIECTypes: [] BlockInstanceCollector: <plcopen.BlockInstanceCollector.BlockInstanceCollector object at 0x7f3dc73f6fd0> logger: <BeremizIDE.LogPseudoFile object at 0x7f3dc73e4a90> Buffering: False BeremizRoot: <Element BeremizRoot at 0x7f3dc608dfb0> ProjectSaved: True StatusMethods: [{'shown': False, 'bitmap': 'Build', 'method': '_Build', 'tooltip': u'Compiler le projet dans le r\xe9pertoire ce compilation', 'name': u'Compiler'}, {'shown': False, 'name': u'Nettoyer', 'enabled': False, 'method': '_Clean', 'tooltip': u'Nettoyer le r\xe9pertoire de compilation', 'bitmap': 'Clean'}, {'shown': True, 'name': u'Ex\xe9cuter', 'enabled': False, 'tooltip': u'Start PLC Simulation', 'bitmap': 'Run', 'method': '_Run'}, {'shown': False, 'bitmap': 'Stop', 'method': '_Stop', 'tooltip': u'Stop PLC Simulation', 'name': u'Arr\xeater'}, {'shown': False, 'bitmap': 'Connect', 'method': '_Connect', 'tooltip': u"Connecter \xe0 l'automate cible", 'name': u'Connecter'}, {'shown': False, 'bitmap': 'Transfer', 'method': '_Transfer', 'tooltip': u"Transf\xe9rer l'automate", 'name': u'Transf\xe9rer'}, {'shown': False, 'bitmap': 'Disconnect', 'method': '_Disconnect', 'tooltip': u"D\xe9connecter l'automate", 'name': u'D\xe9connecter'}, {'shown': False, 'bitmap': 'IDManager', 'method': '_showIDManager', 'tooltip': u'Manage secure connection identities', 'name': u'ID Manager'}, {'shown': False, 'bitmap': 'ShowIECcode', 'method': '_showIECcode', 'tooltip': u'Afficher le code IEC g\xe9n\xe9r\xe9 par PLCGenerator', 'name': u'Afficher le code'}, {'shown': True, 'bitmap': 'down', 'method': '_generateOpenPLC', 'tooltip': u'Generate program for OpenPLC Runtime', 'name': u'G\xe9n\xe9rer le program'}] BuildPath: None _View: None Parser: <xmlclass.xmlclass.XMLClassParser object at 0x7f3dc740c3c0> ConfNodeTypes: [{'name': 'Native', 'types': <Element {http://www.plcopen.org/xml/tc6_0201}project at 0x7f3dc5febd70>}, {'name': 'Python', 'types': <Element {http://www.plcopen.org/xml/tc6_0201}project at 0x7f3dc5feb170>}] IECdebug_datas: {'__tick__': [<WeakKeyDictionary at 139903292010400>, [], 'Registered', None, True]} TracedIECPath: [] ProgramChunks: [('FUNCTION_BLOCK ', ()), ('INT_TO_BIT', ('P::INT_TO_BIT', 'name')), ('\n', ()), (' VAR_INPUT', ()), ('\n', ()), (' ', ()), ('mot_entree', ('P::INT_TO_BIT', 'var_input', 0, 'name')), (' ', ()), (': ', ()), (u'INT', ('P::INT_TO_BIT', 'var_input', 0, 'type')), (';\n', ()), (' END_VAR\n', ()), (' VAR_OUTPUT', ()), ('\n', ()), (' ', ()), ('bit0', ('P::INT_TO_BIT', 'var_output', 1, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::INT_TO_BIT', 'var_output', 1, 'type')), (';\n', ()), (' ', ()), ('bit1', ('P::INT_TO_BIT', 'var_output', 2, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::INT_TO_BIT', 'var_output', 2, 'type')), (';\n', ()), (' ', ()), ('bit2', ('P::INT_TO_BIT', 'var_output', 3, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::INT_TO_BIT', 'var_output', 3, 'type')), (';\n', ()), (' ', ()), ('bit3', ('P::INT_TO_BIT', 'var_output', 4, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::INT_TO_BIT', 'var_output', 4, 'type')), (';\n', ()), (' END_VAR\n', ()), (' VAR', ()), ('\n', ()), (' ', ()), ('EQ84_OUT', ('P::INT_TO_BIT', 'var_local', 5, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 5, 'type')), (';\n', ()), (' ', ()), ('EQ92_OUT', ('P::INT_TO_BIT', 'var_local', 6, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 6, 'type')), (';\n', ()), (' ', ()), ('EQ6_OUT', ('P::INT_TO_BIT', 'var_local', 7, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 7, 'type')), (';\n', ()), (' ', ()), ('EQ12_OUT', ('P::INT_TO_BIT', 'var_local', 8, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 8, 'type')), (';\n', ()), (' ', ()), ('EQ88_OUT', ('P::INT_TO_BIT', 'var_local', 9, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 9, 'type')), (';\n', ()), (' ', ()), ('EQ9_OUT', ('P::INT_TO_BIT', 'var_local', 10, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 10, 'type')), (';\n', ()), (' ', ()), ('EQ2_OUT', ('P::INT_TO_BIT', 'var_local', 11, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 11, 'type')), (';\n', ()), (' ', ()), ('EQ15_OUT', ('P::INT_TO_BIT', 'var_local', 12, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::INT_TO_BIT', 'var_local', 12, 'type')), (';\n', ()), (' END_VAR\n', ()), ('\n', ()), (' ', ()), ('EQ84_OUT', ('P::INT_TO_BIT', 'block', 84, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 84, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 83, 'expression')), (', ', ()), ('1', ('P::INT_TO_BIT', 'io_variable', 85, 'expression')), (');\n', ()), (' ', ()), ('EQ92_OUT', ('P::INT_TO_BIT', 'block', 92, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 92, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 91, 'expression')), (', ', ()), ('3', ('P::INT_TO_BIT', 'io_variable', 93, 'expression')), (');\n', ()), (' ', ()), ('EQ6_OUT', ('P::INT_TO_BIT', 'block', 6, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 6, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 5, 'expression')), (', ', ()), ('5', ('P::INT_TO_BIT', 'io_variable', 8, 'expression')), (');\n', ()), (' ', ()), ('EQ12_OUT', ('P::INT_TO_BIT', 'block', 12, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 12, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 11, 'expression')), (', ', ()), ('7', ('P::INT_TO_BIT', 'io_variable', 13, 'expression')), (');\n', ()), (' ', ()), ('bit0', ('P::INT_TO_BIT', 'coil', 87, 'reference')), (' := ', ()), ('EQ12_OUT', ('P::INT_TO_BIT', 'block', 12, 'output', 0)), (' OR ', ()), ('EQ6_OUT', ('P::INT_TO_BIT', 'block', 6, 'output', 0)), (' OR ', ()), ('EQ84_OUT', ('P::INT_TO_BIT', 'block', 84, 'output', 0)), (' OR ', ()), ('EQ92_OUT', ('P::INT_TO_BIT', 'block', 92, 'output', 0)), (';\n', ()), (' ', ()), ('EQ88_OUT', ('P::INT_TO_BIT', 'block', 88, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 88, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 86, 'expression')), (', ', ()), ('2', ('P::INT_TO_BIT', 'io_variable', 89, 'expression')), (');\n', ()), (' ', ()), ('EQ9_OUT', ('P::INT_TO_BIT', 'block', 9, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 9, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 7, 'expression')), (', ', ()), ('6', ('P::INT_TO_BIT', 'io_variable', 10, 'expression')), (');\n', ()), (' ', ()), ('bit1', ('P::INT_TO_BIT', 'coil', 90, 'reference')), (' := ', ()), ('EQ12_OUT', ('P::INT_TO_BIT', 'block', 12, 'output', 0)), (' OR ', ()), ('EQ88_OUT', ('P::INT_TO_BIT', 'block', 88, 'output', 0)), (' OR ', ()), ('EQ92_OUT', ('P::INT_TO_BIT', 'block', 92, 'output', 0)), (' OR ', ()), ('EQ9_OUT', ('P::INT_TO_BIT', 'block', 9, 'output', 0)), (';\n', ()), (' ', ()), ('EQ2_OUT', ('P::INT_TO_BIT', 'block', 2, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 2, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 1, 'expression')), (', ', ()), ('4', ('P::INT_TO_BIT', 'io_variable', 3, 'expression')), (');\n', ()), (' ', ()), ('bit2', ('P::INT_TO_BIT', 'coil', 4, 'reference')), (' := ', ()), ('EQ12_OUT', ('P::INT_TO_BIT', 'block', 12, 'output', 0)), (' OR ', ()), ('EQ2_OUT', ('P::INT_TO_BIT', 'block', 2, 'output', 0)), (' OR ', ()), ('EQ6_OUT', ('P::INT_TO_BIT', 'block', 6, 'output', 0)), (' OR ', ()), ('EQ9_OUT', ('P::INT_TO_BIT', 'block', 9, 'output', 0)), (';\n', ()), (' ', ()), ('EQ15_OUT', ('P::INT_TO_BIT', 'block', 15, 'output', 0)), (' := ', ()), ('EQ', ('P::INT_TO_BIT', 'block', 15, 'type')), ('(', ()), ('mot_entree', ('P::INT_TO_BIT', 'io_variable', 14, 'expression')), (', ', ()), ('8', ('P::INT_TO_BIT', 'io_variable', 16, 'expression')), (');\n', ()), (' ', ()), ('bit3', ('P::INT_TO_BIT', 'coil', 17, 'reference')), (' := ', ()), ('EQ15_OUT', ('P::INT_TO_BIT', 'block', 15, 'output', 0)), (';\n', ()), ('END_FUNCTION_BLOCK\n\n', ()), ('PROGRAM ', ()), ('Cuve', ('P::Cuve', 'name')), ('\n', ()), (' VAR_EXTERNAL', ()), ('\n', ()), (' ', ()), ('BIT_0', ('P::Cuve', 'var_local', 0, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 0, 'type')), (';\n', ()), (' ', ()), ('BIT_NHC', ('P::Cuve', 'var_local', 1, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 1, 'type')), (';\n', ()), (' ', ()), ('BIT_PLUIE', ('P::Cuve', 'var_local', 2, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 2, 'type')), (';\n', ()), (' ', ()), ('BIT_ARRET', ('P::Cuve', 'var_local', 3, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 3, 'type')), (';\n', ()), (' ', ()), ('CAPACITE_CUVE', ('P::Cuve', 'var_local', 4, 'name')), (' ', ()), (': ', ()), (u'INT', ('P::Cuve', 'var_local', 4, 'type')), (';\n', ()), (' ', ()), ('QUANTITE_CUVE', ('P::Cuve', 'var_local', 5, 'name')), (' ', ()), (': ', ()), (u'INT', ('P::Cuve', 'var_local', 5, 'type')), (';\n', ()), (' ', ()), ('QUANTITE_EAU', ('P::Cuve', 'var_local', 6, 'name')), (' ', ()), (': ', ()), (u'INT', ('P::Cuve', 'var_local', 6, 'type')), (';\n', ()), (' ', ()), ('DUREE_PLUIE', ('P::Cuve', 'var_local', 7, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 7, 'type')), (';\n', ()), (' ', ()), ('VAL_TERRAIN_HUMIDE', ('P::Cuve', 'var_local', 8, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 8, 'type')), (';\n', ()), (' ', ()), ('VAL_TERRAIN_TREMPE', ('P::Cuve', 'var_local', 9, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 9, 'type')), (';\n', ()), (' ', ()), ('VAL_MASQ_TER_HUM', ('P::Cuve', 'var_local', 10, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 10, 'type')), (';\n', ()), (' ', ()), ('VAL_MASQ_TER_TREMP', ('P::Cuve', 'var_local', 11, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 11, 'type')), (';\n', ()), (' ', ()), ('TEMPO_MASQ_TER_HUM', ('P::Cuve', 'var_local', 12, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 12, 'type')), (';\n', ()), (' ', ()), ('TEMPO_MASQ_TER_TREMP', ('P::Cuve', 'var_local', 13, 'name')), (' ', ()), (': ', ()), (u'DINT', ('P::Cuve', 'var_local', 13, 'type')), (';\n', ()), (' ', ()), ('FIN_ARROSAGE', ('P::Cuve', 'var_local', 14, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 14, 'type')), (';\n', ()), (' ', ()), ('Pulse_1s', ('P::Cuve', 'var_local', 15, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 15, 'type')), (';\n', ()), (' ', ()), ('TERRAIN_HUM', ('P::Cuve', 'var_local', 16, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 16, 'type')), (';\n', ()), (' ', ()), ('MASQ_TER_HUM', ('P::Cuve', 'var_local', 17, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 17, 'type')), (';\n', ()), (' ', ()), ('MASQ_TER_TREMP', ('P::Cuve', 'var_local', 18, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 18, 'type')), (';\n', ()), (' ', ()), ('TERRAIN_TREMP', ('P::Cuve', 'var_local', 19, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 19, 'type')), (';\n', ()), (' ', ()), ('CUVE_NON_VIDE', ('P::Cuve', 'var_local', 20, 'name')), (' ', ()), (': ', ()), (u'BOOL', ('P::Cuve', 'var_local', 20, 'type')), (';\n', ()), (' END_VAR\n', ()), (' VAR', ()), ('\n', ()), (' ', ()), ('SR0', ('P::Cuve', 'var_local', 21, 'name')), (' ', ()), (': ', ()), ('SR', ('P::Cuve', 'var_local', 21, 'type')), (';\n', ()), (' ', ()), ('SR1', ('P::Cuve', 'var_local', 22, 'name')), (' ', ()), (': ', ()), ('SR', ('P::Cuve', 'var_local', 22, 'type')), (';\n', ()), (' ', ()), ('R_TRIG1', ('P::Cuve', 'var_local', 23, 'name')), (' ', ()), (': ', ()), ('R_TRIG', ('P::Cuve', 'var_local', 23, 'type')), (';\n', ()), (' ', ()), ('NE26_ENO', ('P::Cuve', 'var_local', 24, 'name')), (' ', ()), (': ', ()), ('BOOL', ('P::Cuve', 'var_local', 24, 'type')), (';\n', ()), (' ', ()), ('NE26_OUT', ('P::Cuve', Project: <Element {http://www.plcopen.org/xml/tc6_0201}project at 0x7f3dc60cde90> ConfNodeMethods: [{'bitmap': 'editIECrawcode', 'method': '_editIECrawcode', 'tooltip': u'Editer le code IEC ajout\xe9 au code g\xe9n\xe9r\xe9 par PLCGenerator', 'name': u'Ajout code IEC'}, {'bitmap': 'ManageFolder', 'method': '_OpenProjectFiles', 'tooltip': u'Ouvrir un explorateur de fichier pour g\xe9rer les fichiers de projet', 'name': u'Fichiers de projet'}] debug_break: False CurrentElementEditing: None _DbgVariablesList: None NextCompiledProject: <Element {http://www.plcopen.org/xml/tc6_0201}project at 0x7f3dc5f35650> CurrentCompiledProject: None _ProgramList: None FilePath: '/home/florian/CloudStation/Projets/Programmes/ArrosageAuto/plc.xml' DispatchDebugValuesTimer: <wx._misc.Timer; proxy of <Swig Object of type 'wxPyTimer *' at 0x55e985590d00> > ProjectPath: '/home/florian/CloudStation/Projets/Programmes/ArrosageAuto' TotalTypesDict: OrderedDict([('SR', [('Standard function blocks', {'comment': 'The SR bistable is a latch where the Set dominates.', 'inputs': [('S1', u'BOOL', 'none'), ('R', u'BOOL', 'none')], 'name': 'SR', 'outputs': [('Q1', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:S1, BOOL:R) => (BOOL:Q1)', 'type': 'functionBlock'})]), ('RS', [('Standard function blocks', {'comment': 'The RS bistable is a latch where the Reset dominates.', 'inputs': [('S', u'BOOL', 'none'), ('R1', u'BOOL', 'none')], 'name': 'RS', 'outputs': [('Q1', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:S, BOOL:R1) => (BOOL:Q1)', 'type': 'functionBlock'})]), ('SEMA', [('Standard function blocks', {'comment': 'The semaphore provides a mechanism to allow software elements mutually exclusive access to certain resources.', 'inputs': [('CLAIM', u'BOOL', 'none'), ('RELEASE', u'BOOL', 'none')], 'name': 'SEMA', 'outputs': [('BUSY', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLAIM, BOOL:RELEASE) => (BOOL:BUSY)', 'type': 'functionBlock'})]), ('R_TRIG', [('Standard function blocks', {'comment': 'The output produces a single pulse when a rising edge is detected.', 'inputs': [('CLK', u'BOOL', 'none')], 'name': 'R_TRIG', 'outputs': [('Q', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLK) => (BOOL:Q)', 'type': 'functionBlock'})]), ('F_TRIG', [('Standard function blocks', {'comment': 'The output produces a single pulse when a falling edge is detected.', 'inputs': [('CLK', u'BOOL', 'none')], 'name': 'F_TRIG', 'outputs': [('Q', u'BOOL', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CLK) => (BOOL:Q)', 'type': 'functionBlock'})]), ('CTU', [('Standard function blocks', {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTU', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'INT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, INT:PV) => (BOOL:Q, INT:CV)', 'type': 'functionBlock'})]), ('CTU_DINT', [('Standard function blocks', {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTU_DINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'DINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, DINT:PV) => (BOOL:Q, DINT:CV)', 'type': 'functionBlock'})]), ('CTU_LINT', [('Standard function blocks', {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTU_LINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'LINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, LINT:PV) => (BOOL:Q, LINT:CV)', 'type': 'functionBlock'})]), ('CTU_UDINT', [('Standard function blocks', {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTU_UDINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'UDINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, UDINT:PV) => (BOOL:Q, UDINT:CV)', 'type': 'functionBlock'})]), ('CTU_ULINT', [('Standard function blocks', {'comment': 'The up-counter can be used to signal when a count has reached a maximum value.', 'inputs': [('CU', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTU_ULINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'ULINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:R, ULINT:PV) => (BOOL:Q, ULINT:CV)', 'type': 'functionBlock'})]), ('CTD', [('Standard function blocks', {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTD', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'INT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, INT:PV) => (BOOL:Q, INT:CV)', 'type': 'functionBlock'})]), ('CTD_DINT', [('Standard function blocks', {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTD_DINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'DINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, DINT:PV) => (BOOL:Q, DINT:CV)', 'type': 'functionBlock'})]), ('CTD_LINT', [('Standard function blocks', {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTD_LINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'LINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, LINT:PV) => (BOOL:Q, LINT:CV)', 'type': 'functionBlock'})]), ('CTD_UDINT', [('Standard function blocks', {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTD_UDINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'UDINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, UDINT:PV) => (BOOL:Q, UDINT:CV)', 'type': 'functionBlock'})]), ('CTD_ULINT', [('Standard function blocks', {'comment': 'The down-counter can be used to signal when a count has reached zero, on counting down from a preset value.', 'inputs': [('CD', u'BOOL', 'rising'), ('LD', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTD_ULINT', 'outputs': [('Q', u'BOOL', 'none'), ('CV', u'ULINT', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CD, BOOL:LD, ULINT:PV) => (BOOL:Q, ULINT:CV)', 'type': 'functionBlock'})]), ('CTUD', [('Standard function blocks', {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'INT', 'none')], 'name': 'CTUD', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'INT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, INT:PV) => (BOOL:QU, BOOL:QD, INT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'})]), ('CTUD_DINT', [('Standard function blocks', {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'DINT', 'none')], 'name': 'CTUD_DINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'DINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, DINT:PV) => (BOOL:QU, BOOL:QD, DINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'})]), ('CTUD_LINT', [('Standard function blocks', {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'LINT', 'none')], 'name': 'CTUD_LINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'LINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, LINT:PV) => (BOOL:QU, BOOL:QD, LINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'})]), ('CTUD_UDINT', [('Standard function blocks', {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'UDINT', 'none')], 'name': 'CTUD_UDINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'UDINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, UDINT:PV) => (BOOL:QU, BOOL:QD, UDINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'})]), ('CTUD_ULINT', [('Standard function blocks', {'comment': 'The up-down counter has two inputs CU and CD. It can be used to both count up on one input and down on the other.', 'inputs': [('CU', u'BOOL', 'rising'), ('CD', u'BOOL', 'rising'), ('R', u'BOOL', 'none'), ('LD', u'BOOL', 'none'), ('PV', u'ULINT', 'none')], 'name': 'CTUD_ULINT', 'outputs': [('QU', u'BOOL', 'none'), ('QD', u'BOOL', 'none'), ('CV', u'ULINT', 'none'), ('CD_T', 'R_TRIG', 'none'), ('CU_T', 'R_TRIG', 'none')], 'extensible': False, 'usage': u'\n (BOOL:CU, BOOL:CD, BOOL:R, BOOL:LD, ULINT:PV) => (BOOL:QU, BOOL:QD, ULINT:CV, R_TRIG:CD_T, R_TRIG:CU_T)', 'type': 'functionBlock'})]), ('TP', [('Standard function blocks', {'comment': 'The pulse timer can be used to generate output pulses of a given time duration.', 'inputs': [('IN', u'BOOL', 'none'), ('PT', u'TIME', 'none')], 'name': 'TP', 'outputs': [('Q', u'BOOL', 'none'), ('ET', u'TIME', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)', 'type': 'functionBlock'})]), ('TON', [('Standard function blocks', {'comment': 'The on-delay timer can be used to delay setting an output true, for fixed period after an input becomes true.', 'inputs': [('IN', u'BOOL', 'none'), ('PT', u'TIME', 'none')], 'name': 'TON', 'outputs': [('Q', u'BOOL', 'none'), ('ET', u'TIME', 'none')], 'extensible': False, 'usage': u'\n (BOOL:IN, TIME:PT) => (BOOL:Q, TIME:ET)', 'typ ProgramFilePath: '' previous_plcstate: 'Disconnected' FileName: u'plc' _builder: None _IECPathToIdx: {} CTNType: 'Beremiz' ProjectBufferEnabled: True VariableInfoCollector: <plcopen.VariableInfoCollector.VariableInfoCollector object at 0x7f3dc6124510> LastNewIndex: 0 Children: {} DebugTimer: Nonetraceback: File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/BeremizIDE.py", line 802, in OnMenu getattr(self.CTR, method)() File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/ProjectController.py", line 1772, in _Run if (self._Build() is False): File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/ProjectController.py", line 1143, in _Build IECGenRes = self._Generate_SoftPLC() File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/ProjectController.py", line 756, in _Generate_SoftPLC if self._Generate_PLC_ST(): File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/ProjectController.py", line 785, in _Generate_PLC_ST self._getIECgeneratedcodepath()) File "/home/florian/T?l?chargements/OpenPLC_Editor/editor/PLCControler.py", line 458, in GenerateProgram program_text = "".join([item[0] for item in self.ProgramChunks])<type 'exceptions.TypeError'>: sequence item 3826: expected string or Unicode, NoneType foundwx-platform:__WXGTK__wx-version:3.0.2.0------------------------------------------------------------Subject: Digest Footer_______________________________________________Beremiz-devel mailing list[hidden email]https://lists.sourceforge.net/lists/listinfo/beremiz-devel------------------------------End of Beremiz-devel Digest, Vol 110, Issue 2*********************************************
_______________________________________________
Beremiz-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/beremiz-devel
|