|
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|
2 <PyFile> |
|
3 <variables> |
|
4 <variable name="Test_Python_Var" type="INT" initial="4"/> |
|
5 <variable name="Second_Python_Var" type="INT" initial="5"/> |
|
6 </variables> |
|
7 <globals> |
|
8 <![CDATA[ |
|
9 import time,sys,ctypes |
|
10 Python_to_C_Call = PLCBinary.Python_to_C_Call |
|
11 Python_to_C_Call.restype = ctypes.c_int |
|
12 Python_to_C_Call.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_int)] |
|
13 |
|
14 def MyPythonFunc(arg): |
|
15 i = ctypes.c_int() |
|
16 if(Python_to_C_Call(arg, i)): |
|
17 res = i.value |
|
18 print "toC:", arg, "from C:", res, "FBID:", FBID |
|
19 else: |
|
20 print "Failed Python_to_C_Call failed" |
|
21 res = None |
|
22 print "Python read PLC global :",PLCGlobals.Test_Python_Var |
|
23 PLCGlobals.Second_Python_Var = 789 |
|
24 sys.stdout.flush() |
|
25 return res |
|
26 |
|
27 async_error_test_code = """ |
|
28 def badaboom(): |
|
29 tuple()[0] |
|
30 |
|
31 import wx |
|
32 def badaboomwx(): |
|
33 wx.CallAfter(badaboom) |
|
34 |
|
35 from threading import Timer |
|
36 a = Timer(3, badaboom) |
|
37 a.start() |
|
38 |
|
39 b = Timer(6, badaboomwx) |
|
40 b.start() |
|
41 """ |
|
42 ]]> |
|
43 </globals> |
|
44 <init> |
|
45 <![CDATA[ |
|
46 global x, y |
|
47 x = 2 |
|
48 y = 5 |
|
49 print "py_runtime init:", x, ",", y |
|
50 ]]> |
|
51 </init> |
|
52 <cleanup> |
|
53 <![CDATA[ |
|
54 print "py_runtime cleanup" |
|
55 ]]> |
|
56 </cleanup> |
|
57 <start> |
|
58 <![CDATA[ |
|
59 global x, y |
|
60 print "py_runtime start", x * x + y * y |
|
61 ]]> |
|
62 </start> |
|
63 <stop> |
|
64 <![CDATA[ |
|
65 print "py_runtime stop" |
|
66 ]]> |
|
67 </stop> |
|
68 </PyFile> |